Я работаю на Linux-машине, подключенной к кластеру. Если я сделаю top
на терминале, я увижу много (~ 200) спящих процессов. Вероятно, они были вызваны мной из-за неправильного Ctrl + C
этих процессов.
Как узнать, какие спящие задания безопасно убить
?
РЕДАКТИРОВАТЬ: Я могу проверить процессы с помощью 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
И многие другие. Как я узнаю, что, убивая их, я не причиняю никаких проблем своей машине или другим заданиям, вошедшим в систему?
Вместо того, чтобы смотреть вверх, чтобы увидеть ваши процессы сна, вам может быть лучше выполнить ps -ef | grep <имя процесса>
вместо того, чтобы пытаться получить их сверху. таким образом вы получите 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