後で指定した時間にバックグラウンドでジョブを実行するように要求できますか?
これが私が今まで持っているものです
nohup nice MY_PROGRAM > foo.out 2> foo.err < /dev/null | at 05:23 PM Mon & echo $!
ただし、実際には存在しない(18454)などのプロセスIDを再表示します。
ps
ジョブに割り当てられたプロセスID。
18453 pts/2 00:00:00 MY_PROGRAM
PID-1 = PIDですか?なぜこれが起こるのかご存知ですか?それとも私のコマンドに問題があるのでしょうか?
答え1
at
標準入力から実行するコマンドを読みます。
実行コマンドを送信していませんat
。コマンドを実行し、コマンドの出力をに送信していますat
。
次のようにしてみてください。
echo 'nohup nice MY_PROGRAM > foo.out 2> foo.err < /dev/null' | at 05:23
このecho
コマンドは文字列を印刷して'nohup nice MY_PROGRAM'
に|
渡しますat
。
なぜそれを使うのかわかりませんが、おそらく仕事があるnohup
ので必要でしょう。at
対話型ではない。
PSコマンドを文字列として渡す'
には、単一引用符()を使用する必要があります。echo