编程学习网 > 数据库 > PHP监控进程状态,完成掉线自动重启
2020
05-29

PHP监控进程状态,完成掉线自动重启

attachments-2020-05-IQpI2cL65ecf657a2da15.jpg


1. 利用Shell脚本实现

#!/bin/bash

PORT=0

while [ true ];do
    read -p "please enter the port that you want to minitor:" port
    if [ $port -gt 65536 ] ||  [ $port -lt 1 ];then
        echo 'the port you enter is not correctly'
    else
        PORT=$port
        break
    fi
done

while [ true ]; do
    if [ `netstat -anp 2> /dev/null | grep ${PORT} | wc -l` -gt 0 ] ;then
        echo 'service is online'
    else
        echo 'service is offline'
        cd /home/eko/share/live_admin/script
        php ./ws.php & fi
    sleep 3
done


2. 利用Swoole定时器实现


class Server {
    const PORT = 8811;

    public function port() {
        $shell  =  "netstat -anp 2>/dev/null | grep ". self::PORT . " | grep LISTEN | wc -l";

        $result = shell_exec($shell);
        if($result != 1) {
            // 发送报警服务 邮件 短信
            /// todo
            echo date("Ymd H:i:s")."error".PHP_EOL;
        } else {
            echo date("Ymd H:i:s")."succss".PHP_EOL;
        }
    }
}

// nohup
swoole_timer_tick(2000, function($timer_id) {
    (new Server())->port();
    echo "time-start".PHP_EOL;
});


扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取