注意:top 命令输出的 TIME+ 字段是进程占用 CPU 运行的时间,并非其真正的运行时间
Linux系统下查看进程启动时间和运行时间的命令:
- ps -o lstart -p PID #根据PID来查询
-
- ps -o lstart,etime -p PID #根据PID来查询,打印出启动时间和已经运行的时间
-
- ps -eO lstart | grep PROCESS #根据进程名字查询
-
-
提示:
1, 大写的O表示preloaded,小写的o表示user-defined,e表示all processes
2, 如果查出来的时间是1-16:15:58, 则表示该运程运行了1天16小时15分钟
3, etime表示elapsed time, 即程序已经运行的时间
例子:
$ ps -o lstart,etime -p 13062 #根据PID打印出启动时间和持续时间
STARTED ELAPSED
Thu Sep 21 09:41:40 2018 1-01:50:35
$ ps -eo pid,lstart,cmd #打印出所有进程(-e)的PID,启动时间
3428 Mon Nov 6 20:55:20 2018 /sbin/udevd -d
3495 Mon Nov 6 20:55:22 2018 /sbin/rsyslogd -i /var/run/syslogd.pid -c 5
3508 Mon Nov 6 20:55:22 2018 /usr/sbin/nscd
3532 Mon Nov 6 20:55:29 2018 /usr/sbin/snmpd -LS 2 d -Lf /dev/null -p /var/run/snmpd.pid -a
3548 Mon Nov 6 20:55:29 2018 /usr/sbin/sshd
3557 Mon Nov 6 20:55:29 2018 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g
3568 Mon Nov 6 20:55:29 2018 crond
#依次打印出某进程的pid,uid,user,启动时间,持续时间,占用CPU时间(cputime),以及cmd
$ ps -eo pid,euid,euser,lstart,etime,cputime,cmd | grep searcher_server
7259 7259 Fri Sep 22 11:36:21 2018 00:01 S pts/0 00:00:00 grep 13062
13062 13062 Thu Sep 21 09:41:40 2018 1-01:54:42 S ? 1-15:50:04 /export/App/jd_search/searcher/server/bin/searcher_server