假设我知道进程号 (pid),如何查看进程何时启动?(在 Linux 上)
答案1
如果您只想要开始时间,您可以选择该字段并通过执行以下操作来抑制标题:
ps -p YOURPID -o lstart=
输出将如下所示:
Mon Dec 14 17:17:16 2009
这是ctime(3)
格式,您可以解析它以分离出相关部分。
其他开始字段如start
、和时间(例如,24 小时后仅显示日期)stime
。bsdstart
start_time
但是,您可以直接将它们用于最近启动的进程,而无需进一步解析:
ps -p YOURPID -o stime=
输出内容如下:
09:26
答案2
awk '{print $22}' /proc/$pid/stat
- 提供启动后以 jiffies 为单位的启动时间
答案3
“ps -f” - 它在手册页中
答案4
根据 Dennis Williamson 的出色回答,该ps
命令还提供了-O
选项,根据手册页:是“类似于 -o,但预装了一些默认列。”如果您不知道 PID 本身,这允许您 grep 与 PID 关联的命令(程序)。
示例:查找apt-get
Debian/Ubuntu 上挂起的进程何时启动:
ps -A -O lstart= | grep apt-get | grep -v grep
管道过滤grep -v grep
掉包含字符串“grep”的行,从而删除我们刚刚输入的命令(因为我们不想要它)。
在我现在的系统上,这给出:
1461407 Apr 15 06:00:00 2021 S ? 00:05:09 apt-get autoremove -y