Иногда я замечаю, что процесс Python
завис. Затем я убью его через монитор активности, и все в порядке.
Я бы хотел убить этот процесс в Терминале. Тем не менее, поиск PID
кажется немного ненужным, потому что есть только один процесс по имени Python
.
Можно ли убить процесс его уникальным именем?
No matching processes belonging to you were found
sudo killall Python
.sudo
когда я убил его, используя егоPID
. Зачем?sudo
.Если вы не можете быть sudo, потому что он попросит пароль, и я чувствую, что вы не хотите этого в сценарии. pkill прийти на помощь :)
источник
Вы можете убить Приложения, используя Activity Monitor.app, являющийся решением с графическим интерфейсом. Это было бы простым «принудительным уходом». Однако в некоторых ситуациях это не всегда срабатывает по разным причинам!
Решение командной строки, как упомянуто в комментарии выше, содержит гораздо больше возможностей для пользователя.
sudo killall Python
или, если это запущенный программный процесс, онsudo killall /Applications/Whatever.app
также принудительно завершает этот процесс.Вы также можете принудительно завершить процесс, используя назначенный ему PID . В случае Activity Monitor.app это будет
kill 25794
илиkill -9 25794
Еще несколько деталей:
Программа kill в Terminal просто принудительно завершает работу программы, как если бы она была удалена. (Это даже работает, когда вы SSH подключаетесь к вашему Mac из удаленного местоположения. Следуйте команде kill с идентификатором процесса (коротким PID) программы, которую вы хотите прекратить.
Если вы также не используете sudo, вы можете убивать только те программы, которые вам «принадлежат» - те, которые работают под вашей учетной записью. (Сама операционная система - root - всегда запускает собственные программы, и технически возможно, что другие люди, звонящие с дороги, запускают свои собственные программы, даже когда вы используете Mac!)
-9
Флаг «не-catchable, не игнорируемые убийство.» Другими словами, это индустриально-сила убийца , который не принимает мольбы о пощаде из программы ты убиваешь.источник
Несмотря на то, что действительно использовать PID, я считаю следующее быть довольно эффективным:
ps aux | grep "String or name of process"
Эта строка возвращает множество информации о процессе (ах) сопоставления, и вы можете
kill
или что-либо еще оттуда.источник
Основано на https://stackoverflow.com/a/22334807/1243763
источник
pidof
бинарный как нестандартный псевдонимps -e -o pid,args | grep -E "\b$1\b" | awk "{print \$1}" | tr '\n' ' '
. Итак,pkill -f
имеет больше смысла.