Есть ли способ перечислять и уничтожать запущенные процессы в Mac OS X в стиле «Ctrl + Alt + Delete» для Windows?

57

Итак, что вы делаете на Mac, когда процесс (в отличие от приложения) загружает процессор, перегружает вашу машину, и вам нужно его убить?

Я знаю, что вы можете использовать topили открыть «Приложения> Утилиты> Монитор активности» и убить его оттуда.

Но что происходит, когда процесс уже использует столько ресурсов ЦП, что выполнение любой из этих задач невозможно?

В Windows, вы можете просто сделать ctrl+ alt+ deleteи список процессов будет надежно открыть. Поэтому независимо от того, насколько сильно ваш компьютер работает, у вас всегда есть доступ к списку процессов.

В Mac OS есть cmd+ alt+ escape, который надежно показывает запущенные приложения . Хорошо, когда это приложение вызывает проблему. Но: что вы делаете, если это процесс?

AP257
источник
4
Конечно. Cmd / Alt / Escape показывает только приложения: я хочу, чтобы он отображал все процессы.
AP257,
@Bobby - похоже, вы никогда не работали на Mac и вынуждены были использовать Force Quit . Я уверен, что AP257 понял это правильно.
jww
@noloader: Ну, я понятия не имею, что я пытался сказать этим комментарием ...
Бобби
@ AP257 - отсутствует еще один полезный Mac - способ быстрой блокировки Mac. Как в Windows ' Ctrl / Alt / Delete → Блокировка рабочей станции .
jww

Ответы:

39

Исходя из вашего желания убить отдельный процесс, я предполагаю, что вы согласны с решением в Терминале. Терминал довольно легкий, поэтому должен быть отзывчивым, даже если ваша система перегружена или вы входите через ssh.

Помимо базовой killкоманды, которая убивает процессы с помощью их pid(которые вам нужно получить либо с помощью psкоманды, либо с монитора активности), в терминале есть хитрый трюк killall, который позволяет вам убивать процесс по имени, а не ПИД - регулятор.

Например, если вы знаете имя вашего процесса my-prog-0или что-то еще, вы можете перейти к терминалу и сделать:

% killall my-prog-0

Есть несколько хороших вариантов (см. man killallДля получения дополнительной информации):

-s : Shows the kill commands that will be generated so you can be safe.
-u : Limits to a specified user

В OS X следует отметить одну вещь: некоторые системные процессы будут автоматически перезапущены, если они будут убиты launchdдемоном (я думаю ??). Например, если Dock не отвечает, вы можете сделать это, killall Dockи он автоматически перезагрузится.

dtlussier
источник
Спасибо за подробный ответ и предложения, хотя это не решает проблему. Запуск терминала может занять несколько минут, если машина выходит из строя ... и к тому времени, когда он запускается, таинственный фоновый процесс обычно исчезает ... В любом случае, спасибо.
AP257,
Если это так, то я не уверен, что еще многое нужно сделать, кроме как выяснить, что вызывает этот процесс, а затем избежать этих условий.
dtlussier
Зачем это 0нужно?
Игорь Ганапольский
«0» не обязательно. Это было включено в ответ, потому что типично, что у процессов есть числа в их имени. Важная вещь должна соответствовать названию процесса, который вы хотите убить.
dtlussier
@dtlussier Типично, что у процессов есть числа в названии? Я никогда не видел этого, ну, никогда. О каких приложениях вы говорите?
Серебряный Волк - Восстановить Монику
25

Принудительное завершение работы является альтернативой диспетчеру задач на Mac. Это быстро, эффективно и очень быстро убивает приложения.

Вы можете получить доступ к этой функции двумя способами.

  1. Icon Значок Apple (в левом верхнем углу экрана) -> Принудительный выход ...
  2. Удерживать Alt/Option+  Apple/Command+ Escape. Это может быть полезно, если вы запомнили команду клавиатуры и в редком случае, когда Finder плохо себя ведет и зависает вместе с ней.
JFW
источник
3
Да, это убивает приложения . Это моя точка зрения! На моей машине есть фоновый процесс, который иногда вызывает массовое замедление работы машины. Force Quit не показывает этого.
AP257,
Монитор активности можно использовать для отображения всех процессов и их уничтожения. Вы можете выйти из них или принудительно выйти из них в приложении.
JFW
9

Попробуйте следующую команду в терминале, чтобы вывести список и найти процесс с помощью регулярного выражения: -

PS GX | grep 'Symantec'

В приведенном выше примере перечислены все процессы, связанные с Symantec. Замените «Symantec» своей собственной фразой. Далее используйте варианты команды kill. Вы можете использовать: -

убить пид

Замените «pid» фактическим идентификатором процесса. Или используйте,

убить всех

как предлагалось ранее. Чтобы повторить еще одно полезное предложение, используйте

убить человека

чтобы просмотреть руководство по команде «kill», а также прокрутить вниз и увидеть соответствующие команды, которые упоминаются в разделе «СМОТРИ ТАКЖЕ».

Amit
источник
8

Это не процесс, убивающий сочетание клавиш, только для запуска приложений. Единственный способ уничтожить процессы - через Activity Monitor или Terminal с помощью команд UNIX.

Мэдисон С
источник
3

Перейдите к монитору активности, найдите док и выделите его. Нажмите кнопку уничтожения (Stopsign с буквой X в левом верхнем углу).

Force Quit используется для простых приложений, а монитор активности может использоваться для уничтожения процессов.

Alex
источник
2

Используйте Activity Monitor, чтобы найти процесс, который вы хотите уничтожить. Посмотрите на PID, используя терминал. Введите KID PID number и затем вернитесь.

Это предполагает, что у вас есть права администратора или sudu

Стив Уокер
источник
1
Почему бы не выбрать процесс и не нажать кнопку «Принудительно завершить процесс» в левом верхнем углу?
Арьян