Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Under Linux I can get a process's uptime in seconds with:

echo $(($(cut -d "." -f1 /proc/uptime) - $(($(cut -d " " -f22 /proc/$PID/stat)/100))))

But how can I get it under different OS? ex.: SunOS, HP-UX, AIX?

share|improve this question
up vote 6 down vote accepted

On any POSIX-compliant system, you can use the etime column of ps.

LC_ALL=POSIX ps -o etime= -p $PID

The output is broken down into days, hours, minutes and seconds with the syntax [[dd-]hh:]mm:ss. You can work it back into a number of seconds with simple arithmetic:

t=$(LC_ALL=POSIX ps -o etime= -p $PID)
d=0 h=0
case $t in *-*) d=${t%%-*}; t=${t#*-};; esac
case $t in *:*:*) h=${t%%:*}; t=${t#*:};; esac
s=$((d*86400 + h*3600 + ${t%%:*}*60 + ${t#*:}))
share|improve this answer

I don't know if there is one command for all systems, but you can use the Unix Rosetta Stone to translate the commands to each system.

share|improve this answer
echo $(( $(date +'%s') - $(stat -c '%Y' /proc/$PID) ))

This should work in any system with a /proc filesystem. Unfortunately I don't have the means to test it.

share|improve this answer

This will work:

ps -eo etime,cmd | grep process_name
share|improve this answer

Discovered one that works across Linux (probably all versions) and Solaris (at least, 5.9) - no access to other OS's to test it and too lazy to check docs :)

boottime=$(who -b | awk '/ /{print $3 " " $4}')")

is the time the system was booted in yyyy/mm/dd HH:MM:SS format, so converting to epoch-seconds is:

bootepoc=date -d "$boottime" +%s

and time its been up in seconds is obviously just current epoc-time minus that ie. $(( $(date +%s) - $bootepoc ))

If you want that as a more formatted date, might be easier going with another answer although other scripting languages can get you there (probably possible other ways too).

(you didnt say how you wanted it but gave a different example).

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.