MyApp.jar
たとえば、同じファイル名で実行される2つのJavaプロセスがあります。
/usr/java/latest/bin/java -jar MyApp.jar
これらの瓶は異なる場所に存在し、異なる構成を使用します。
プロセスを終了したいのですが、2つのプロセスを区別する方法がわかりません。私は次を実行します:
ps aux | grep [M]yApp.jar
そして得る:
admin 21509 0.8 0.1 1199908 20484 ? Sl 08:21 0:00 /usr/java/latest/bin/java -jar MyApp.jar
admin 21585 6.7 0.1 1199764 20084 ? Sl 08:21 0:00
私はプロセスを区別するためにいくつかのダミーパラメータを使用してプロセスを作成することを考えました。
/usr/java/latest/bin/java -jar MyApp.jar MyAppTheFirst
そして
/usr/java/latest/bin/java -jar MyApp.jar MyAppTheSecond
しかし、これは私にとって少し間違っているようです。もっと良い方法がありますか?
ベストアンサー1
まず、なぜそれらの1つを殺すのですか?プロセスが多すぎるリソースを使用している場合は、次からPIDを取得できますtop
。
top -n 1
定期的にまたは外部刺激に応答して再起動する必要がある場合プロセス管理:
while true
do
java -jar MyApp.jar &
my_app_pid=$!
while ! whatever_makes_me_think_my_app_should_be_restarted
do
sleep 60
done
kill $my_app_pid
done