Как мне убить процесс, который не умрет?

18

Я не могу убить процесс, используя любую из известных мне техник («Принудительное завершение» в Activity Monitor top, killallиз терминала), и мне интересно, есть ли какие-то дополнительные шаги, которые я могу предпринять.

введите описание изображения здесь

~ $ sudo killall -KILL 77439
Password:
No matching processes were found
~ $ killall -KILL 77439
No matching processes belonging to you were found
~ $ killall 77439
No matching processes belonging to you were found
~ $ killall Mathematica
No matching processes belonging to you were found

ПОЭТОМУ этот процесс называется «Mathematica», который я не могу перезапустить, завершить или принудительно завершить, или выполнить сэмплирование, либо по имени, либо по идентификатору PID, и у него, по-видимому, есть некоторые странные побочные эффекты (скриншоты не отображаются, не может очистить корзину и не могу даже выключить систему).

Есть ли дополнительные шаги, которые можно предпринять, чтобы действительно убить плохо себя ведущий процесс?

Оромэ
источник
Можете ли вы найти этот процесс, используя top в терминале?
Pierobon
1
В следующий раз, когда эта проблема возникнет, добавьте вывод ps alx | egrep '[ /](PID|Math)'в свой вопрос.
дан
@danielAzuelos: Хороший совет. Сделаю.
Оромэ

Ответы:

35

killallубивает по имени процесса (который определенно не 77439 и, скорее всего, также не Mathematica). Вы можете использовать kill 77439или (если это не удастся) kill -9 77439вместо этого (но если процесс действительно зависает, только перезагрузка решит проблему).

Кроме того, из-за того, как отправка / обработка сигналов (например kill -9) работает в Unix / OS X, существуют ситуации, когда процесс будет невозможен. Типичным примером этого является случай, когда процесс застревает при доступе к какому-либо внешнему устройству и никогда не получает контроль обратно. В таких ситуациях перезагрузка - единственный способ избавиться от процесса.

Nohillside
источник
2
Убийство звучит так, как будто оно должно происходить так, как оно говорит, но на самом деле его следует называть «посылать сигнал прерывания», поскольку существует много разных типов уничтожения, которые он может выполнить. Использование параметров, по -9сути, использует наиболее мощную форму завершения с предельно возможными предрассудками ...
Stuff
1
$ kill -9 PID всегда помогает мне, даже если это слишком агрессивно.
Pierobon
Похоже, что Mathematica просто необычайно плохо себя ведет. В конце концов мне пришлось принудительно отключиться (зависло обычное отключение). У меня нет этой проблемы с любым другим приложением, но у Mathematica это было не раз.
Оромэ
Вот еще некоторые подробности о том, что может привести к зависанию процессов.
GDP2
Я второй убью -9. Единственный раз, когда у меня был сбой "sudo kill -9", была система, которая была полностью заблокирована и все равно нуждалась в перезагрузке.
MikeP
-3

Запустив macOS Mojave 10.14 Beta 1, мне нужно было выполнить следующее, чтобы получить какую-либо тягу:

sudo xcscontrol --reset   
Эд Солтер
источник
2
Что именно это делает / зачем это нужно?
pkamb
xcscontrolтакое Xcode Server Control, и, похоже, не имеет никакого отношения к процессу с плохим поведением?
Мэтт Сефтон