0

特定のジョブが終了したときに (ステータス情報を報告する) コマンドを実行する bash スクリプトが必要です。私は(スクリプトを使用して)多くのプログラムを実行しており、nohupを使用してそれらをバックグラウンドに送信しています。それらが終了したら、情報を収集して報告するスクリプトを実行したいと思います。pidがまだジョブリストにあるかどうかを積極的にチェックするスリープを伴うforループを持つことができることを私は知っていることに注意してください。しかし、nohup にオプションを追加するなどして、システムにこのスクリプトを実行するように指示する方法があるかどうか疑問に思っています。

4

3 に答える 3

1

nohup実行したいコマンドを実行し、後で完了後のジョブを実行するスクリプトを作成できます。

たとえば、次のように作成しますruntask.sh

runjob
collect_and_report

その後:

% nohup runtask.sh
于 2012-05-17T21:59:34.867 に答える
0

関数でジョブを開始し、関数をバックグラウンドで開始します。

task1plus () {
  task1 
  whenFinished1  
}

task2plus () {
  task2
  whenFinished2
}

task3plus () {
  task3
  whenFinished3
}

task1plus &
task2plus &
task3plus &
于 2012-05-17T23:29:16.677 に答える
0

これはあなたのために働くかもしれません:

{script; report} &
disown -h

または、条件付きにする場合:

{script && report} &
disown -h

あなたもすることができます:

{script && report || fail} &
disown -h
于 2012-05-18T01:27:03.707 に答える