2016-04-29 6 views

答えて

0

でそれをシミュレートすることができ、私は私のスクリプト

/usr/bin/subl 
SPID="$(ps -A | grep sublime_text | awk '{print $1}')" 
sleep 5 
kill "$SPID" 
unset "$SPID" 
+0

複数のインスタンスを実行している場合に、返されたPIDを検索するのではなく、返されたPIDをキャプチャする方がよいでしょう。 '/ usr/bin/subl'を実行してid:' SPID = $! 'をキャプチャしてください。 – yk11

+0

@ yk11崇高なテキストは、 '/ usr/bin/subl'を使って生成されたプロセスとは別のプロセスでエディタを起動するようですが、そうでなければ@ chepnerの答え – myol

2

使用timeout

timeout 5s <program> 

また、プロセスを終了するに渡す必要信号を指定することができます。

timeout -s9 5s <program> 

(OR)

timeout --signal=KILL 5s <program> 

テスト:

$ time timeout 5s sleep 40 

real 0m5.002s 
user 0m0.001s 
sys  0m0.001s 
+0

でこれを使用して終了 'subl'(崇高なテキスト)でこれをしようとしません.. – myol

+0

崇高なテキストで動作しているようです?しかしそれは編集者ですね。 –

+0

更新された回答。それは 'SIGTERM '信号を送る' timeout'のためであり、 'subl'で扱うことができます。 – sat

2

あなたは、プロセスを終了するための標準的なアラーム信号を使用して、あなたのシステム上timeoutコマンドを有することができます。私はシェルがこの機能を組み込みとして利用することができない理由を全く理解していません。あなたのシステム上timeoutをお持ちでない場合は、

my_program & pid=$! 
sleep 10 
kill "$pid" 
関連する問題