2009-11-10 13 views
7

私はファイル "pid"にプロセスIDを持っています 私はそれを殺したいと思います。以下のようなlinux shell:ファイルからコマンド引数を読み取るには?

何か:

kill -9 <read pid from file> 

は、私が試した:

kill -9 `more pid` 

は、しかし、それは動作しません。私もxargsを試しましたが、私の周りに私の頭を得ることはできません。

+0

をまとめてみましょう。 – BCS

+0

http://www.speculation.org/garrick/kill-9.html –

答えて

12

は、私はそれがB/more`は、ユーザーの入力を期待しているかもしれない `Cそれを殺している` more`ビットだと思う、私はすべての答え

kill -9 $(cat pid) 
kill -9 `cat pid` 
cat pid | xargs kill -9 
13

はあなたのために

kill -9 $(cat pid) 

仕事をしていますか?

+1

+1。あなたがそれらを入れ子にすることができるので、私はバックティックより$()メソッドを好む。 – paxdiablo

3

私の好みはバッククォートで任意のコマンドのために動作します

kill -9 `cat pid` 

です。

2

kill -9 $(cat pid)またはcat pid | xargs kill -9は両方

2

あなたは徐々にオフ開始しなければならない仕事をし、それがうまくプレーしたくない場合は、プロセスを殺すために重いものを上に移動します。

SIGKILL(-9)シグナルは検出されず、プロセスによって保持されているリソースはすべてクリーンアップされません。

まず、kill -0 $(cat pid)を実行して、SIGTERM(-15)をkillしてからプロセスの存在を確認してください。それがまだぶら下がっているなら、是非-9でそれを拭いてください。

SIGTERMはプロセスによって捕捉され、正しく書かれたプロセスは、シグナルハンドラを持ってSIGTERMを捕まえ、終了する前にリソースをクリーンアップする必要があります。

+0

'kill -15'ではなく' kill -s TERM'を渡すことができます。 – jpaugh

関連する問題