さまざまなオペレーティングシステムでプロセスの稼働時間を取得する方法は?

さまざまなオペレーティングシステムでプロセスの稼働時間を取得する方法は?

Linuxでは、以下を使用して数秒でプロセスの稼働時間を取得できます。

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

しかし、他のオペレーティングシステムからどのように入手できますか?例:SunOS、HP-UX、AIX?

ベストアンサー1

POSIX 互換システムでは、etime次の列を使用できます。ps

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

構文を使用して、出力を日、時間、分、秒で区切ります[[dd-]hh:]mm:ss。単純な算術を使用して秒単位に戻すことができます。

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

おすすめ記事