0

数秒SIGNAL後にプロセスに送信したい。.5

たぶんこれは良い考えではありませんが、私はまれな一時的なケースのためにそれをしたいと思います。

私は次のように試しましたが、機能しません。

(sleep .5;kill -9)| some_process
4

2 に答える 2

5

信号はパイプに向けられていません。それらはプロセス識別子(pid)に向けられます。私はこのようなことを試みるかもしれません:

some_process & sleep .5; kill -KILL $!

これはバックグラウンドで実行some_processされます(これ&が目的です)。$!0.5秒後、最後のバックグラウンドプロセスのpidを示す変数が使用されます。

(ただしsleep、一部のシステムでは整数のみを受け入れます。)

于 2013-02-06T03:22:08.327 に答える
1

sleep .5; kill -9 $(pidof some_process) 動作するはずです。pidofプロセス名のプロセスIDを返します。は、コマンドの$()結果をコマンドに返しますkill。別の方法は次のとおりです。

sleep .5; pidof some_process | xargs kill -9

詳細を確認man pidofしてください。

編集:もありtimeoutます。timeout -s SIGKILL 0.5s some_process私があなたの質問を正しく理解したなら、トリックをするべきです。

于 2013-02-06T03:00:50.167 に答える