检查进程启动时间

要想知道进程启动时间,通常可以使用ps命令

ps -o lstart= -p the-pid

例如进程 example_daemonpid1458

$ ps aux | grep example_daemon
root      1458  1.2  0.0  59604  3772 ?        SLl  23:25   0:20 /usr/lib/example_daemon

则检查如下

ps -o lstart= -p 1458

显示输出详细的启动时间

Mon Mar  6 23:25:32 2017

但是上述时间是进程启动时间,不一定是命令当前执行调用的时间。进程可以(并且通常是)在它的生命周期内运行多个命令。并且命令有时候会唤起其他进程。

/proc目录下的文件的mtime就是表示这些文件被实例化的时间,也就是进程访问它们活着列出目录中内容的第一次时间。

对于实例:

sh -c 'date +%T.%N; sleep 3; echo /proc/"$$"/xx*; sleep 3; stat -c %y "/proc/$$/cmdline"'

这里/proc/"$$"/xx*并不是实际存在的文件,而是为了使得shell去展开通配符,这样就会去读取/proc/$$目录下的内容,也就会导致cmdline文件被实例化。所以能够获得时间变化。

参考

Last updated