0

私は現在Javaプロセスを開始しており、を使用してそのPIDを取得し$!、それをファイルに書き込もうとしています。問題は、Javaプロセスを開始すると、それが独自の「コンソール」に入るということです。(これが何と呼ばれるかわかりません)。

プロセスを停止して「コンソール」を終了するまで、これをファイルに書き込むことはできません$!。その場合、PIDは使用できなくなります。

Javaプロセスを開始し、終了せずにPIDを取得するにはどうすればよいですか?echo $! > pidfile.pidJavaプロセスのPIDをファイルに書き込むために使用しています。

4

1 に答える 1

1

小さなJavaラッパースターターjava.shを記述します(例):

#!/bin/bash
pidfile=/some/path/pidfile.pid
echo $$ > $pidfile
exec java $@

簡単に言うと、シェルスクリプトはそのPIDを書き出してから、シェルスクリプトに渡すすべてのパラメータを使用してJavaプロセスに置き換えます。次に、スクリプトでjavajava.shに置き換えるだけです。もちろん、エクスポートされた変数を介してpidfileを渡すことができます。

于 2012-07-07T20:35:17.190 に答える