Я не могу завершить процесс по сигналу SIGKILL.
$ ps aux | grep -i phps
username 17564 0.0 0.0 0 0 ?? ?E Sun09AM 0:00.00 (phpstorm)
username 27664 0.0 0.0 2442020 788 s000 S+ 11:53AM 0:00.00 grep -i phps
$ sudo kill -9 17564
$ ps aux | grep -i phps
username 17564 0.0 0.0 0 0 ?? ?E Sun09AM 0:00.00 (phpstorm)
username 27883 0.0 0.0 2423392 312 s000 R+ 11:55AM 0:00.00 grep -i phps
Что означает этот процесс в скобках? Как это убить?
Ответы:
Я предполагаю, что вы пытаетесь убить PIS 17564
kill -9 17564
Тем не менее, он уже мертв, и его имя отображается в () в выводе ps. (Я узнал, что это зомби-процесс, но, похоже, это не правильно, но решение остается тем же). Оно исчезнет, когда запустившийся процесс прочитает свой код завершения.
Страница man для ps говорит, что состояние E означает, что процесс пытается выйти. Показанная команда на самом деле является ключевым словом ucomm (accounting), поскольку система не может найти фактические аргументы.
Чтобы удалить процесс, вызывающий его процесс должен прочитать его код выхода, однако, вероятно, произошел сбой, и он этого не сделает, поэтому вам нужно уничтожить родительский процесс.
ps -ajx
покажет статус и родительский - обратите внимание, что Apple / BSD изменил параметры ps в Tiger иps -aux
не работает,ps aux
видит взлом, так как это то, что все используют. Так что вам нужно прочитать справочную страницу.источник
ps -ajx
показывает родительский идентификатор (PPID) в третьей строке. иps -ajx -p PID
будет отображать точное состояние процесса. Снова тнкс.-a
аргумент следует избегать, если вы укажете-p
. Потому что он по-прежнему будет отображать все процессы. второй . `$ ps -p 542 -jx USER PID PPID PGID SESS JOBC STAT TT TIME COMMAND имя пользователя 542 1 542 0 1? E ?? 0: 00.00 (phpstorm) `Похоже, что родительский/sbin/launchd
. И перезапуск это очень похоже на перезапуск системы.