为了通过暴力手段使事情在低内存的VPS上正常运行,我使用了对terdom 答案的修改来检查并重新启动MySQL。
/sbin/service mysqld status || service mysqld restart
我需要更改mysql
为mysqld
使其正常工作。没有它,我将得到错误“ ERROR! MySQL is running but PID file could not be found
”。
在我的CentOS 7.2系统上,/sbin/service
重定向到/bin/systemctl status
,因此以下命令的执行速度更快。
/bin/systemctl status mysqld.service || /bin/systemctl start mysqld.service
我最终将以下行添加到系统的根crontab中。它每分钟检查一次MySQL是否正在运行,并将stdout重定向为null。除非出现问题,否则启动服务不会输出任何内容,因此无需在最后一个命令上添加null重定向。
* * * * * /bin/systemctl status mysqld.service > /dev/null || /bin/systemctl start mysqld.service
双管道||
意味着OR
如果第一个命令以某种方式失败,它将执行第二个命令。(返回大于零的退出代码。)
就像说,“运行第一个命令,或者,如果第一个命令以某种方式失败,则运行第二个命令”。
这与双与号不同,&&
后者就像说:“运行第一个命令,并且,只有第一个命令成功时才运行第二个命令”。