Подтвердить что ты не робот

Как убить процесс в MacOS?

Я попробовал kill -9 698, но процесс не умер.

$ ps -ef | grep chromium
  502   698   811   0   0:01.24 ??         0:07.28 /Users/lucius/chromium/src/xcodebuild/Debug/Chromium.app/Contents/MacOS/Chromium
  502   854   732   0   0:00.00 ttys001    0:00.00 grep chromium
$ kill -9 698


$ ps -ef | grep chromium
  502   698   811   0   0:01.24 ??         0:07.28 /Users/lucius/chromium/src/xcodebuild/Debug/Chromium.app/Contents/MacOS/Chromium
  502   854   732   0   0:00.00 ttys001    0:00.00 grep chromium
4b9b3361

Ответ 1

Если вы пытаетесь убить -9, у вас есть правильный PID, и ничего не происходит, тогда у вас нет прав на убийство процесса.

Решение:

$ sudo kill -9 PID

Хорошо, конечно, Mac OS/X дает сообщение об ошибке для этого случая:

$ kill -9 196
-bash: kill: (196) - Operation not permitted

Итак, если вы не получаете сообщение об ошибке, вы каким-то образом не получаете правильный PID.

Ответ 2

В некоторых случаях вы можете убить весь процесс, запущенный в определенном порту. Например, если я запускаю приложение node на 3000 портах, и я хочу его убить и запустить новый; то я нашел эту команду полезной.

Найдите идентификаторы процессов, запущенные на TCP-узле 3000, и убейте его

kill -9 `lsof -i TCP:3000 | awk '/LISTEN/{print $2}'`

Ответ 3

Если вы знаете имя процесса, которое вы можете использовать:

killall Dock

Если вы этого не сделаете, вы можете открыть Activity Monitor и найти его.

Ответ 4

Если kill -9 не работает, то не будет killall (или даже killall -9, который будет более "интенсивным" ). По-видимому, процесс хрома застревает в безостановочном системном вызове (т.е. В ядре, а не в userland) - не думал, что у MacOSX остался какой-либо из них, но я думаю, что всегда есть еще один:-(. процесс имеет управляющий терминал, вы, вероятно, можете его закомпоновать и убить во время фонового рисунка, в противном случае (или если интенсивное убийство не работает даже после того, как процесс будет основан на bakcgrounded) У меня нет идей, и я думаю, что вам придется перезагружаться: -. (

Ответ 5

Учитывая путь к вашей программе, я предполагаю, что вы в настоящее время запускаете это под Xcode и, вероятно, находитесь в точке останова отладки. Процессы не могут быть убиты в этом состоянии из-за базовой реализации точек останова.

Первым шагом будет переход на процесс Xcode и прекращение отладки. Если по какой-то странной причине вы потеряли доступ к Xcode (возможно, Xcode потерял доступ к подпроцессу gdb), тогда решение должно убить процесс gdb. В более общем плане решение здесь состоит в том, чтобы убить родительский процесс. В вашем случае это PID 811 (третий столбец).

В этом случае нет необходимости использовать -9.

Ответ 6

Я только что искал это, поскольку я вхожу в подобную ситуацию, и вместо kill -9 698 я попробовал sudo kill 428, где 428 был pid процесса, который я пытаюсь убить. Это работало чисто для меня, в отсутствие символа дефиса. Надеюсь, это поможет!

Ответ 7

Я испытал, что если kill -9 PID не работает, и вы владеете процессом, вы можете использовать kill -s kill PID, что вызывает удивление, поскольку на странице руководства вы можете kill -signal_number PID.

Ответ 8

Недавно я столкнулся с подобной проблемой, когда редактор атомов не будет закрыт. Ни один не отвечал. Убить/убить -9/принудительно выйти из Activity Monitor - не сработало. Наконец пришлось перезагрузить мой Mac, чтобы закрыть приложение.