簡體   English   中英

如何重新啟動init.d上的Jar文件?

[英]How to restart a Jar file on init.d?

我正在使用CentOS 6.3 64位。

我正在使用將服務器作為服務啟動。

#!/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

我應該在腳本中添加些什么,以便它響應“服務urlovedserver重新啟動”? 我不知道如何停止Java服務。

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

一種想法是獲取執行命令的pid(使用$! shell變量)將其保存在文件中,然后在shell腳本中添加stop命令,該命令只會終止從前一個文件讀取的Java進程。 就像是

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

然后重啟將只是stop()和start()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM