私は仕事がありますautosys
。このautosys
タスクではスクリプトを実行していますshell
。シェルスクリプトの実行無期限Javaプログラムを実行してみてください。無限for
ループについて話してください。
#!/bin/ksh
function abc() {
java DemoJavaProgram
RESULT=$?
if[ $RESULT -eq 0 ]; then
exit 0;
else
exit 1;
}
abc | tee output.file
上記のシェルスクリプトは何も返しませんが、Javaプログラムの実行に停止します。このautosys
作業状態はRUNNING
成功せずにバックグラウンドで上記のコマンドを実行してみました&
。この場合でも、成功しないままバックグラウンドでフルシェルスクリプトを実行してみました。
このようなスクリプトを終了する方法はありますか?
[tl;dr] Javaプログラムを起動してスクリプトを終了したい
ベストアンサー1
私はautosys自体に慣れていませんが、次のようにバックグラウンドで長期実行コマンドを起動できます。
#!/bin/ksh
nohup java DemoJavaProgram 1> output.file 2>&1 </dev/null &
このnohup
コマンドを使用すると、java
コマンドが壊れた信号にも生き残ることができます。その後、入力と出力がリダイレクトされます。&
最後の演算子は、コマンドがバックグラウンドで実行されるように強制します。
ここでは終了ステータスコードに頼ることはできません。何らかの理由でコマンドが起動しない場合は、java
出力ファイルにエラーメッセージを書き込んで終了します。