我在连接到集群的 Linux 机器上工作。如果我top
在终端上执行此操作,我会看到许多(约 200 个)睡眠进程。可能它们是由我不恰当地Ctrl+C
处理这些过程造成的。
我如何知道哪些睡眠工作是安全的kill
?
编辑:我可以通过检查进程ps -e S
。问题可能是我不理解输出。例如:
24086 pts/0 Ss+ 11971:50 -tcsh
24084 ? S 0:00 (sd-pam)
22183 ? Sl 10:08 /usr/bin/gedit --gapplication-service
4790 ? S 0:00 [kworker/u16:2]
1043 tty7 Ssl+ 91:14 /usr/sbin/brld --nodaemon
还有许多其他人。我怎么知道杀死它们不会对我的机器或其他登录的作业造成任何麻烦?
答案1
与其在顶部查看睡眠进程,不如执行 aps -ef | grep <process name>
而不是尝试从顶部获取它们。这样你就可以获得pid
杀死进程所需的信息。顶部的许多睡眠进程通常是系统进程。
例子:
[thebtm@localhost thebtm]# ps -ef | grep httpd
root 1257 1 0 Mar28 ? 00:00:51 /usr/sbin/httpd -DFOREGROUND
root 2920 10825 0 08:35 pts/3 00:00:00 grep --color=auto httpd
apache 16936 1257 0 Apr10 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 16937 1257 0 Apr10 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 16939 1257 0 Apr10 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 16940 1257 0 Apr10 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 20857 1257 0 Apr10 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 20858 1257 0 Apr10 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 20859 1257 0 Apr10 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 20860 1257 0 Apr10 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 21040 1257 0 Apr10 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 21041 1257 0 Apr10 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
[thebtm@localhost thebtm]# kill 16936