.pidファイルでいっぱいのフォルダがあります。それぞれにresqueワーカーのPIDがあります。コマンドラインからそのフォルダー内のすべてのPIDを強制終了するにはどうすればよいですか?
質問する
4106 次
6 に答える
4
cat folder/*.pid | xargs kill
やるべきですか?
たとえばKILL
、信号を指定する必要がある場合は、
cat folder/*.pid | xargs kill -KILL
pidfile に改行がない場合は、次のようにするとうまくいく可能性があります。
( cd folder &&
for pidfile in *.pid; do echo kill -QUIT `cat $pidfile`; done
)
于 2013-02-08T05:34:13.207 に答える
3
ドキュメントによると、使用するように言われています:
ps -e -o pid,command | grep [r]esque-[0-9] | cut -d ' ' -f 1 | xargs -L1 kill -s QUIT
注:ファイルを使用する代わりに、名前で検索し.pid
ます。
また、QUIT
シグナルはそれらを優雅に殺します。それらを強制的に殺したい場合は、TERM
代わりに使用してください。
于 2013-02-08T06:48:40.577 に答える
2
次のコマンドを実行します。
kill `cat folder/*.pid`
PID ファイルに改行がない場合は、次のように動作するはずです。
for f in folder/*.pid; do kill `cat "$f"`; done
于 2013-02-08T05:34:30.420 に答える
2
これを実行します-バッククォートを使用:
kill -9 `cat /path/*.pid`
于 2013-02-08T05:35:12.467 に答える
0
質問は答えですが、あなたができる素晴らしい方法がたくさんあると思いました
Linux で何らかのタスクを実行して、Linux のパワーを発揮するための答えを見つけてください。
これがなんとも
pgrep ruby | xargs ps | grep [r]esque | awk '{print $1}' | xargs kill -9
注: pgrep
MAC-OS ではサポートされていません。
于 2013-02-23T17:52:25.923 に答える
0
先頭のパディングはエラーの原因になります。sed 's/^ *//g'
先頭のスペース/パディングを削除するために使用します:
ps -e -o pid,command | grep '[r]esque-[0-9]' | sed 's/^ *//g' | cut -d ' ' -f 1 | xargs -L1 kill -s QUIT
于 2013-11-06T02:46:57.913 に答える