采用直接修改 /etc/rc.local 文件的方式实现开机启动。
系统报错,日志文件如下:
2017-08-15 18:30:35 pid:808 worker start in DAEMON mode
2017-08-15 18:30:35 pid:2437 exception 'PDOException' with message 'SQLSTATE Connection refused' in /www/default/resheng/Gateway/vendor/workerman/gateway-worker/src/Lib/DbConnection.php:1697
Stack trace:
#0 /www/default/resheng/Gateway/vendor/workerman/gateway-worker/src/Lib/DbConnection.php(1697): PDO->__construct('mysql:dbname=re...', 'root', 'My201765', Array)
#1 /www/default/resheng/Gateway/vendor/workerman/gateway-worker/src/Lib/DbConnection.php(1683): GatewayWorker\Lib\DbConnection->connect()
#2 /www/default/resheng/Gateway/vendor/workerman/gateway-worker/src/Lib/Db.php(48): GatewayWorker\Lib\DbConnection->__construct('127.0.0.1', 3306, 'root', 'My201765', 'resheng')
#3 /www/default/resheng/Gateway/Applications/YourApp/Func.php(11): GatewayWorker\Lib\Db::instance('db1')
但是如果手工启动(php start.php start -d)则完全正常。
百思不得其解,难道是启动workerman的时候mysql等服务还未启动???
忘了说,环境是 CentOS 7.0 ,PHP 5.4 ,MYSQL MYSQL5.5
为了验证
自动启动代码更改为
(
sleep 60
/usr/bin/php /www/default/resheng/Gateway/start.php start -d
)&
再次重启测试,正常。。 难道真是mysql服务未启动原因??? 不过最好是判断mysql服务有无开启,未开启则等待,开启了则启动workerman ...但这个脚本不会写了。
你的情况是数据库没启动导致的
感谢。老大注意休息。