2017-05-11 13 views
1

時間の経過後にコマンドを実行しようとしています。私はこれらのソリューションを見つけました:コマンドは終了している場合x時間間隔ごとに終了していないコマンドを繰り返します。

watch -n60 command 

while true; do command; sleep 60; done 

彼らは良い作業している(例えば:echo "message"

を私が実行しているコードが終了しません。だから、それらのソリューションは私のために働いていない理由です。しかし、私はそれを実行し、60秒後に終了し、再度実行したい。どうやってやるの?

+1

1000回実行した後に何が起こりますか?何も終了しません。あなたはまだ1000のプロセスを実行していますか?あなたはあなたのサーバー/システム/何を殺すように縛られています。あなたは本当にあなたが望む/必要とするものを考え直さなければなりません。 –

+0

@AleksG時間を過ぎると終了して再起動したい – JayGatsby

+0

バックグラウンドでcommad: 'while true; &コマンドを実行します。睡眠60; done' – czvtools

答えて

2

使用timeout command

while true; do timeout 60 command; done 

注60秒前にコマンドが終了がアップしている場合に、分が立ち上がるのを待つのではなく、すぐに再実行されます。

+0

それは動作します!ありがとうございました – JayGatsby

0

これはcommand 60秒ごとに起動し、それが終端されていない場合は、プロセスを殺す:

while true; do command &; LAST_PID=$!; sleep 60; kill -9 $LAST_PID; done 
関連する問題