У меня есть приложение, которое не умрет: оно ушло из дока, но окно остается (с надувным мячом, если я наведу на него курсор мыши). Он не использует процессор, но я хочу, чтобы он ушел.
Есть ли что-то более сильное, чем «Force Quit», чтобы действительно убить приложение?
lion
macos
applications
кругозор
источник
источник
SIGTERM
, что и в диалоге и Activity Monitor.Ответы:
Если вы знаете название приложения, вы можете проверить в Activity Monitor, чтобы увидеть, работает ли оно там еще, и попробовать принудительно завершить работу. Если это не сработает, запишите идентификатор процесса приложения (pid). Перейдите в терминал и наберите
kill [pid]
, заменив «[pid]» на номер, который вы отметили ранее. Если это не сработает, попробуйте,kill -3 [pid]
и если это не сработаетkill -9 [pid]
. Если процесс принадлежит другому пользователю (это, вероятно , нет), то , возможно , потребуется заменитьkill
сsudo kill
и введите пароль.Если приложение не отображается в Activity Monitor или вы не можете этого
kill
сделать, возможно, окно застряло в другом месте, и приложение просто больше не работает. В этом случае иногда (не всегда) это может работатьkillall SystemUIServer
илиkillall Dock
.Если ничего из этого не работает, вам придется выйти из системы и снова войти в нее или перезагрузиться. Несколько раз, когда я доходил до этого, приложение зависало так, что не давало возможности выйти из системы или завершить работу, поэтому мне пришлось сильно перезагрузиться.
источник
sudo
, хотя процесс принадлежит мне), без изменений. Повлияет ли этоkillall SystemUIServer
на любое из моих других открытых приложений, например, на забвение позиций в окне?kill -l
, -3 - SIGQUIT, а -9 - SIGKILL («неуловимое, неуязвимое убийство»).man kill
(который входит в топ-10 лучших команд UNIX когда-либо), чтобы увидеть их все.Окно принудительного завершения
killall
иkill
все процессы отправки по умолчанию обрабатывают сигналы. Вы можете использовать,killall -kill
если это не работает.Если вы запускаете
sudo dtrace -n 'proc:::signal-send /pid/ { printf("%s -%d %d",execname,args[2],args[1]->pr_pid); }'
и закрываете какое-либо приложение из окна принудительного выхода, сигнал обычно отображается как -15 (TERM). Но когда вы покидаете фоновый процесс (или приложение, которое не отображается в Dock) из Activity Monitor, сигнал обычно отображается как -9 (KILL).источник
SIGKILL
работает, приложение, вероятно, находится в непрерывном сне , и вы действительно ничего не можете сделать (кроме перезагрузки).У меня были ситуации, когда Force Quit, Activity Monitor
kill
и другие методы не работали, и мой Mac не мог выключиться из-за этого.В этом случае
sudo shutdown -r now
сработает, когда ничего другого не будет, и, вероятно, лучше, чем сделать принудительное отключение с помощью кнопки питания.источник
Как и в ответах выше, самый сильный способ завершить любой процесс
SIGKILL
, напримерkill -9 process_id
.Однако существуют процессы, которые просто невозможно
Force Quit
ниkill
. Они называютсяzombie
процессами.Вот короткий скрипт, который создаст
zombie
процесс за две минуты:Запустите приведенный выше скрипт в Терминале, и вы получите вывод, например:
Если вы проверите столбец состояния для неубиваемого процесса (в данном случае: 50571), вы увидите
Z
флаг, что означаетzombie
.Вы можете попробовать отправить любой
kill
сигнал (напримерkill -9 50571
), и процесс все еще будет существовать. В любом случае, это не вредит вашей системе, потому что на самом деле ее не существует - она занимает только таблицу процессов.В приведенном выше примере, через 120 секунд он будет очищен.
источник
Вот что вы должны сделать:
Подобный процесс лучше всего удалять в безопасном режиме, если вы попытаетесь удалить его.
Ура, Брайан
источник