0

Javaアプリケーションの実行に使用されるステートメントを含むLinuxスクリプトがあります。スクリプト(runServer.sh)は次のようなものです。

java ServerApp &

Javaアプリケーションはサーバーであるため、停止するまで永久に実行され続けます。したがって、runServer.shを実行した後、コンソールは自動的に返されず、リターンキーを押すのを待ち続けます。

また、同じ問題により、ランタイムAPIを介したリモートスクリプト呼び出しが永久に待機します。

proc = rt.exec(runScript);
exitVal = proc.waitFor();

machine1からsshsayを介してリモートスクリプトを実行している場合でも、リモートスクリプトの実行を終了するにはcrtl+cを使用する必要があります。

runServer.shに次のステートメントを挿入すると、問題は解決します。しかし、その場合、「echo $?>pid」を介してプロセスIDをファイルに書き込むことができませんでした

exec > "\tmp\outlog.txt" 2>&1

linuxスクリプトを変更してコンソールを自動的に返す方法はありますか?

4

1 に答える 1

0

スクリプトを次のように変更します。

nohup java ServerApp &

于 2012-10-04T12:20:38.280 に答える