プロセス名でgrepして、プロセスを殺す
UNIXでも結構ありそうなシチュエーション。
UNIXだと、
> ps aux | grep mokemoke
なり
> ps -ef | grep mokemoke
してプロセスIDを調べてから
> kill 000
とする*1。
PowerShellだとこうする
PS C:\> Get-Process -name notepad Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 69 6 7904 12804 115 0.11 4232 notepad
としてプロセスIDを調べてから
PS C:\> Stop-Process -id 4232 PS C:\>
として殺す。ここではエディタのnotepad.exeに犠牲になってもらった。このとき、Get-Processの-nameプロセスでは、完全一致でないとうまくいかない。もし、プロセス名の一部しかわからない場合には、以下のようにする。
PS C:\> Get-Process | Where-Object {$_.Name -like "no*"} Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 54 3 2568 6092 40 0.13 5204 notepad 88 3 880 3032 29 0.02 3616 NotiMan
さらにstop-processでは一点、注意が必要になる。stop-processによるプロセスの終了は、本当に問答無用らしく*2、エディタでの編集中、つまりダイアログさえでない。ふつーにシャットダウンの場合でも、「保存する?」と聞いてくることを思い出すと、結構容赦なし。