首先,在 *nix 上保存 PID:
$ ./yourprogram &
$ echo $! > /var/run/yourpid
yourpid 现在将包含 yourpgram 的 PID,而 /var/run 是放置它的合适位置。
以上可以放在你的“开始”脚本中。“停止”脚本可以查看您的pid 以知道要杀死什么。
如果您想更优雅并正确停止您的应用程序,您可以查看 Tomcat 的 org.apache.catalina.startup.Catalina.java 的源代码,了解如何实现正确的关闭挂钩。
其次,可以将上面的“停止”和“启动”脚本放在 /etc/init.d/mystopstartscript 中:
#!/bin/bash
# processname: yourprogram
# pidfile: /var/run/yourpid
case $1 in
start)
sh /some/where/start.sh
;;
stop)
sh /some/where/stop.sh
;;
restart)
sh /some/where/stop.sh
sh /some/where/start.sh
;;
esac
exit 0
这是一个相当本土的解决方案,其想法主要来自优秀的 'ol Tomcat,但我希望它有所帮助:)