0

我正在使用 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

我应该在脚本中添加什么以便它响应“service urlovedserver restart”?我不知道如何停止 java 服务。

4

2 回答 2

1

写入PID文件。如果需要,可以阅读PID-filekill 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

一个想法是获取已执行命令的 pid(使用$!shell 变量)将其保存在一个文件中,然后在您的 shell 脚本中添加一个停止命令,该命令只会终止它从前一个文件中读取的 java 进程。就像是

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

然后重新启动将只是 stop() 和 start()

于 2013-11-07T08:31:00.863 回答