数秒SIGNAL後にプロセスに送信したい。.5
たぶんこれは良い考えではありませんが、私はまれな一時的なケースのためにそれをしたいと思います。
私は次のように試しましたが、機能しません。
(sleep .5;kill -9)| some_process
信号はパイプに向けられていません。それらはプロセス識別子(pid)に向けられます。私はこのようなことを試みるかもしれません:
some_process & sleep .5; kill -KILL $!
これはバックグラウンドで実行some_processされます(これ&が目的です)。$!0.5秒後、最後のバックグラウンドプロセスのpidを示す変数が使用されます。
(ただしsleep、一部のシステムでは整数のみを受け入れます。)
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私があなたの質問を正しく理解したなら、トリックをするべきです。