前言:
線上服務正常可用是至關重要的,當正在運行的某個端口服務異常停止,我們期望定時腳本可以自動啟動,而無需遇到問題再人為的啟動。
例如:監聽Mysql服務是否正常,我們通常的思路是檢查3306端口是否正常啟動的方式來監聽。
方法:
以Mysql服務,端口3306為例,shell腳本寫法為:
#!/bin/bash #監控Mysql服務是否開啟 port=`netstat -nlt|grep 3306|wc -l` if [ $port -ne 1 ] then /etc/init.d/mysqld start else echo "MySQL is running" fi
以webSocket服務,端口8820為例,shell腳本寫法為:
#!/bin/bash #監控webSocket服務是否開啟 port=`netstat -nlt|grep 8820|wc -l` if [ $port -ne 1 ] then $(cd /home/websocket && php start.php start -d) else echo "webSocket is running" fi