您好以前我在Windows上托管我的应用程序并编写了一个检查RUNNING_PID文件的服务,如果该进程不存在则启动一个新shell并再次启动该应用程序。
我目前使用脚本分发应用程序:play clean update dist。所以这会创建我的.jar文件和我的启动脚本
但是现在我正在尝试在linux上设置系统(ubuntu,但如果更容易就会改变)。我正计划编写一个python脚本来做同样的事情并使它成为一个cron工作来检查它是否每15分钟运行一次。该脚本将检查文件pid,确保它正在运行,然后启动该服务。这是有效的,但当我启动一个新的子进程开始:./ start&它打印出所有播放输出并等待关闭进程。
是否有更好的方法为playframework创建看门狗类型服务?
即使我试图运行./start&来自shell的脚本它不会启动新的后台线程。
答案 0 :(得分:1)
如果发生崩溃,RUNNING_PID可能会保留在系统中。最好使用sudo netstat -lpn |grep :9000
来监视端口侦听器,或者将最后一行启动脚本更改为nohup java $* -cp $classpath play.core.server.NettyServer
dirname $ 0 > out.txt &
,并注意使用lsof | grep "out.txt"
<将进程写入out.txt / p>