プロセスを名前で強制終了するにはどうすればよいですか?


44

プロセスがPythonハングしたことに気づくことがあります。その後、Activity Monitorを介してそれを強制終了しますが、すべて正常です。

代わりに、ターミナルでそのプロセスを強制終了します。ただし、PID名前によるプロセスは1つしかないため、ルックアップは必要ありませんPython

一意の名前でプロセスを強制終了することは可能ですか?

回答:


52

コマンドを実行できるはずsudo killall Pythonです。

Pythonはユーザーではなくルートに属するため、ルートとして実行する必要があります。


私はそれをしました:No matching processes belonging to you were found
ゲントマット

1
Pythonプロセスはユーザーのものではありません。代わりにルートとして試してください:sudo killall Python
ヘニングJ

1
@HenningJ Sudoは何らかの理由で機能しました。プロセスが自分のものであることがわかりました。私はsudoそれを使用してそれを殺したときになしでプロセスを殺すことができましたPID。どうして?
ゲントマット

1
プロセス名がそうであるのに対して、PIDの使用はユーザー/ルート固有ではないからだと思います。この回答を編集して反映しますsudo
マットラブ

これは、同じ名前の複数のプロセスでも
有効でした

21
sudo killall -s SIGINT "process name"

パスワードを要求されるためsudoになれない場合は、スクリプトでそれを望まないと感じます。pkillは救助に来ます:)

pkill -9 "process name"

5

GUIソリューションであるActivity Monitor.appを使用して、アプリケーションを強制終了できます。それは単純な「強制終了」になります。ただし、状況によっては、さまざまな理由で常にうまくいくとは限りません!

上記のコメントで述べたコマンドラインソリューションには、ユーザーにとってより多くのオプションがあります。sudo killall Pythonまたは、実行中のプログラムプロセスの場合、プロセスもsudo killall /Applications/Whatever.app強制的に終了します。

割り当てられたPIDを使用して、プロセスを強制終了することもできます。Activity Monitor.appの場合は、kill 25794またはkill -9 25794

ここに画像の説明を入力してください

いくつかの詳細:

Terminalのkillプログラムは、リモートコントロールのようにプログラムを強制終了します。(リモートの場所からMacにSSHで接続しても機能します。終了するプログラムのプロセスID番号(短いPID)を指定してkillコマンドを実行します。

sudoも使用しない限り、「所有」しているプログラム(アカウントで実行されているプログラム)のみを強制終了できます。(オペレーティングシステム自体-ルート)は常に独自のプログラムを実行しています。Macを使用しているときでも、道路からダイヤルインする他の人が独自のプログラムを実行している可能性があります!)

-9フラグが「非捕捉可能、非無視キル」です。つまり、それはプログラムあなただ殺害から慈悲のための嘆願を受け入れていない非常に強力な暗殺者です。


5

それががない PIDを使用して、私はかなり効率的に次を見つけます:

ps aux | grep "String or name of process"

この行は、一致するプロセスに関する情報のホストを返し、killそこから何でもできます。


2
pkill -f "process name"

https://stackoverflow.com/a/22334807/1243763に基づく


1
macOSにpidofはありますか?そして、なぜ追加のプロセスの問題がないpkillを使用しないのですか?
nohillside

同意し、私はそれを見逃した。のpidof非標準エイリアスとしてバイナリがありましたps -e -o pid,args | grep -E "\b$1\b" | awk "{print \$1}" | tr '\n' ' '。したがって、pkill -fより理にかなっています。
サミール
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.