我使用 3A 服务器的时候,经常需要查看进程,下面分享给你们
注意: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