バックグラウンドプロセスを終了する必要があるときはいつでも ps -e | grep <process_name>
それはこのような何かを印刷し1766 ? 00:00:13 conkyにそれから私は、プロセスIDを使用して、killそれがとても好きですkill 1766。
これを簡単にする方法はありますか?早くする?入力の量を減らしますか?
バックグラウンドプロセスを終了する必要があるときはいつでも ps -e | grep <process_name>
それはこのような何かを印刷し1766 ? 00:00:13 conkyにそれから私は、プロセスIDを使用して、killそれがとても好きですkill 1766。
これを簡単にする方法はありますか?早くする?入力の量を減らしますか?
回答:
(TL、DR: 、)pgreppkill
多くのUNIXが付属してバリアントpgrepとその仲間pkill:Solarisの、Linuxの(の一部標準プロセスユーティリティは、組み込みLinuxシステムから存在しなくてもよい)、FreeBSDでは、OpenBSDの、NetBSDの、...しかし、唯一のOS X上でMacPortsのから、ではないAIX、およびのみ最近HP-UXで。このpgrepユーティリティは、名前、ユーザー、およびその他のいくつかの基準で一致したプロセスのプロセスIDを表示します。への引数pgrepは、プロセスの実行可能ファイル名の一部と一致する必要がある正規表現として解釈されます(これを変更するオプションを渡さない限り)。のpkill代わりに呼び出す場合pgrep、ユーティリティはプロセスIDを表示する代わりにシグナルを送信します。
別の同様のユーティリティはpidofです。上のLinux、それはによって提供されますはsysvinitやBusyBoxの(あなたが頻繁にありません組み込みLinuxシステム上でそれを見つけることができますのでpgrep)。他のUNIXバリアントにもポートがあります。pidofユーティリティが少ないオプションがあり、それは主に全体のみ実行可能ファイル名と一致します。コンパニオンユーティリティkillallは、一致したプログラムに信号を送信します¹。
¹Solaris および他のUNIXバリアントでは意味が異なる
ことに注意しkillallてください。killallSolarisでルートとして入力しないでください。
killall ProcessName (このコマンドには、プログラムのプロセス名が常にわからないという欠点があります)。pidof ProccessName そして kill the result form pidofps xu | grep <process name> | grep -v grep | awk '{ print $2 }' | xargs kill -9 この1行を試して、それをbashの履歴から再利用するか、エイリアスを作成してください。pidofはもう少し簡単に見えますが、それでも2つのステップがかかります
これはどう -
ps -e | awk '$4~/<process name>/{print $1}' | xargs kill
例:
[jaypal:~/Temp] sleep 100&
[1] 74863
[jaypal:~/Temp] ps -e | awk '$4~/sleep/{print $1}' | xargs kill
[1]+ Terminated: 15 sleep 100
更新:
それを行うための良い方法を追加することですので、申し訳ありませんが、これは明らかに少ないタイピングの要件を満たしていないfunctionあなたに.bashrc、.profileまたは任意の起動スクリプト。関数は次のようになります-
killp() {
awk -v pname="$1" '($4==pname){print $1}' <(ps -e) | xargs kill
}
追加したら、単にプロセスの名前を渡すことができます:
[jaypal:~] sleep 100&
[1] 77212
[jaypal:~] killp sleep
[1]+ Terminated: 15 sleep 100