Рейтинг:1

пкилл не убивает

флаг tm

Я пытался убить процесс, используя pkill -9 <pid>

Всякий раз, когда я запускаю эту команду, она ничего не возвращает, и процесс также не уничтожается.

Как мне поступить теперь?

Редактировать:

Я был глуп, пытаясь использовать убить с пид. убить принимает имя процесса, а не pid. убийство это команда, которая принимает pid, как указано в принятом ответе.

Однако другой фактический ответ хорошо объясняет фактическую возможность того, что pkill не убивает, и очень хорошо написан.

pierrely avatar
флаг cn
альтернативный убийца -9 и, возможно, запустить как sudo. вы также можете получить "$(pidof )", когда вам нужно число, и вы можете получить несколько (например, Firefox и его окно менеджера загрузок, тогда вам нужно пройти через массив из этого pidof
Рейтинг:6
флаг bd

Если я правильно помню (я никогда его не использую), pkill использует имя процесса, а не PID. чтобы использовать PID, используйте kill вместо pkill.

user10489 avatar
флаг in
Хорошая точка зрения. Процесс не умрет, если вы промахнетесь при попытке убить его. pkill обычно ищет только имя команды. pkill -a или -f также ищет аргументы команды, но это опасно и может убить слишком много. Я предлагаю использовать pgrep перед pkill, чтобы увидеть, действительно ли вы что-то сопоставляете.
Рейтинг:4
флаг in

Есть ровно три причины, по которым kill -9 не уничтожит процесс. (Страницы старого руководства пометили это как «Убить с крайним предубеждением». Процесс не может избежать -9, а только отсрочит свою смерть.)

Вы можете проверить процесс с помощью ps -O стат -p 1234 Например. Изучите столбец состояния (S):

Три причины, по которым процесс не умирает сразу после -9:

  • Он уже мертв — это зомби. (status=Z) Он уйдет, когда его родитель дождется его (и соберет зомби) или умрет сам родительский процесс.
  • Он застрял в ожидании устройства. (status=D) Единственный способ убить их - заставить устройство освободить его или перезагрузить. Для этого может потребоваться ожидание, физическое манипулирование устройством или какой-либо другой нестандартный способ «выбить» зависшее устройство. (И в редких случаях перезагрузка завершится ошибкой и зависнет, и вам придется выключить и снова включить питание.)
  • Он приостановлен (статус = T), и в этом случае kill -9 убивает его, но на самом деле он не умирает, пока процесс не будет возобновлен (kill -CONT)

Команда kill на самом деле что-то возвращает, хотя в случае успеха она не возвращается. Распечатать что-либо. Все команды имеют возвращаемое значение. Вы можете проверить это с помощью эхо $? сразу после выполнения команды. Если возвращаемое значение равно 0, уничтожение прошло успешно и ничего не печатается. Любое другое значение является ошибкой, и оно должно печатать ошибку; возможные ошибки могут быть Отказано в доступе (или операция не разрешена) и Нет такого процесса. В pkill есть несколько ошибок, которые немного интереснее.

Этот вопрос на других языках:

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.