Once a process in Linux is running for more than 24 hours, it's impossible to get an exact measurement of its start time from ps. The best you can do it something like this:
lingalls@foobar:~$ ps -o “user pid stime tty comm” -u lingalls
USER PID STIME TT COMMAND
lingalls 32237 Apr06 ? gconfd-2
lingalls 11813 Apr06 ? gnome-session
lingalls 11940 Apr06 ? utaudio
lingalls 11950 Apr06 ? utslaunch
lingalls 11951 Apr06 ? utmhscreen
lingalls 11960 Apr06 ? utaction
lingalls 11975 Apr06 ? ssh-agent
lingalls 11979 Apr06 ? bonobo-activati
Which is completely unhelpful. So I wrote a script to calculate the accurate starttime from information in the proc filesystem. Shared here for your conveniece:
stime ()
{
if ( test ! -d /proc/$1 ); then
echo “No process $1”;
return;
fi;
U="
awk '{print $1}' /proc/uptime | sed -e 's/\.//'
";
N="awk '{print $22}' /proc/$1/stat
";
D="$(( (U-N)/100 ))";
perl -e ‘print scalar localtime(time - shift)."\n"’ $D
}
Copy and paste that script into your bash or ksh session (or append it to your .bash_profile or .profile), and then run "stime PID".