尝试使用ps查找自进程启动以来的秒数。我的ps版本不支持etimes,也不确定如何获取此信息?
答案 0 :(得分:2)
对于pid 1234的过程,您可以使用伪文件/proc/1234/status
的元数据的 mtime 字段。请阅读proc(5)了解更多信息。
另请参阅stat(2)和stat(1)以及date(1)。
所以date +%s
提供自Unix epoch以来的当前日期,例如1479125355现在在11月14日 th ,2016。stat -c %Y /proc/1234/status
给出了自Unix时代以来的过程1234的开始时间。你想要区别。也许使用(经过测试,我的交互式shell是zsh)
$[$(date +%s) - $(stat -c %Y /proc/1234/status)]
;适应你的shell。
例如:
bash -c 'sleep 4; echo $(($(date +%s) - $(stat -c %Y /proc/$$/status)))'
按预期给我4分。当然$$
扩展为bash -c
命令的pid