我如何知道哪些睡眠工作可以安全地「終止」?

我如何知道哪些睡眠工作可以安全地「終止」?

我在連接到叢集的 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

相關內容