0

CentOS 6.3 64bit を使用しています。

サーバーをサービスとして起動しています。

#!/bin/sh
# chkconfig: 2345 90 10
#description: URL Server
# processname: urlovedserver
start(){
java -jar /root/BookkServer-0.0.1-jar-with-dependencies.jar
}
# See how we were called.
case "$1" in
  start)
   start
   ;;
  *)
   echo "Usage: $0 {start}"
   exit 1
esac

「service urlovedserver restart」に応答するには、スクリプトに何を追加すればよいですか? Java サービスを停止する方法がわかりません。

4

2 に答える 2

1

ファイルに書き込みPIDます。PID-file必要に応じて、Java プロセスの強制終了を読み取ることができます。

start(){
    #run your process in background
    java -jar /root/BookkServer-0.0.1-jar-with-dependencies.jar &
    # write PID
    echo $! > program.pid  
}

これで、プロセスを強制終了できます。

kill -9 `cat program.pid` #kill java process
于 2013-11-07T08:18:40.663 に答える
0

1つのアイデアは、実行されたコマンドのpidを取得し($!シェル変数を使用)、それをファイルに保存してから、シェルスクリプトに停止コマンドを追加して、前のファイルから読み取ったJavaプロセスを強制終了することです。何かのようなもの

kill -9 `cat /var/run/myjavaservice.pid`.

その後、再起動は stop() と start() だけになります

于 2013-11-07T08:31:00.863 に答える