我有一个/etc/init/myservice.conf
。重启后,它就可以正常运行。该服务是一个 Java Web 服务器,例如:
java -jar myhttpserver.jar
但是!我无法手动停止或重新启动该服务。如果我这样做:
service myservice stop
然后终端挂起。如果我Ctrl+C并重试,它会告诉我stop: Job has already been stopped: myservice
。我认为它在撒谎,因为我仍然可以使用网络浏览器访问它。initctl list
显示以下内容:
myservice stop/killed, process 1303
为什么无法停止?如何手动重新启动?我想通过替换 jar 并重新启动服务来测试服务器。
值得一提的是,这是一个搭载 Ubuntu 14 的 Google Compute Engine 实例。conf 文件如下:
description "server instances"
author "Me"
start on runlevel [2345]
stop on shutdown
#Respawn the process if it crashes
respawn
#If it respawns more than 10 times in 5 seconds stop
respawn limit 10 5
expect fork
script
logPath="/var/log/myservice"
mkdir -p $logPath
logFile="/"$logPath"/"$(date +'%Y-%m-%d-%H-%M-%S')
java -cp /home/myuser/dev.jar com.myservice.Main dev > $logFile"_dev_std" 2> $logFile"_dev_err"
end script