【CentOS为例】:
添加如下指令到 /etc/rc.local :
/path/to/php /path/to/yourfile.php start -d
根据以上教程,在rc.local里设置自动启动后,确实是好使的。但是新的问题存在了,就是如果在ssh里通过命令手工重启,比如远程维护服务器后,需要reboot重启服务器。那么就会无法重启。
屏幕上会出现
a stop job is running for /etc/rc.d/rc.local compatibility
然后后面有时间,永久计时下去,就永远停留在这个界面了。
此时服务器无法访问,如果不人工通过物理关机重启,那么服务器是无法再工作的。
我的环境是centos7.6 PHP7.3 php5.6 装了2个PHP版本 mysql8.0.16 nginx1.17.7
请问,这种情况,是否有解决办法。或者有没有其他的自启动的方法?
我使用的是workerman和gatewayworker都在用。
如果无法远程reboot维护服务器,那么rc.local自启动功能就是一个累赘了。不可能每次都人工去机房强行关机然后开启服务器。
workerman是否有其他办法实现自启动?
在 rc-local.service 的[Service] 段中加
TimeoutStopSec=5
默认这一项的值是 0 .
设置时非零值. systemd在关于这个服务时 会在超过 TimeoutStopSec 的时间后发 信号9 给剩下的进程. 不会一直等着.
百度搜的
默认有一个TimeoutSec=0 没有TimeoutStopSec