page contents

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;
});


attachments-2020-05-VV88o5Ks5ecf658bd42df.jpg

  • 发表于 2020-05-28 15:17
  • 阅读 ( 553 )
  • 分类:PHP开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Pack
Pack

1135 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1474 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章