swoole配合shell_exec函数实现服务监控

咱们写一个监控WebSocket服务运行的脚本
class Monitoring
{
	// WebSocket监听的端口
    const PORT = 9510;

    public function port()
    {
        // 查询 端口使用情况 
        // grep LISTEN 过滤处于侦听状态的进程
        // wc -l 是统计文件行数
        $shell = 'netstat -nap | grep '. self::PORT. ' | grep LISTEN | wc -l';
        $res = shell_exec($shell);
        if ($res < 1) {
            // 发送短信 邮件
            echo '失败了,需要发送通知哦'. PHP_EOL;
        }
    }
}

// 两秒执行一次脚本
Swoole\Timer::tick(2000, function($tiemr_id) {
    (new Server())->port();
});

通过运行这段代码 ,咱们就可以间隔2秒执行一次对WebSocket服务的监控,但是我们在命令行中通过 php Monitoring.php 来让代码跑起来的时候,我们会发现,此时的命令行会 挂起执行
所以我们想要让它在运行命令的时候不要挂起,就可以通过 nohup 命令来实现:

nohup /绝对路径/php /绝对路径/Monitoring.php &

注:& 让命令在后台执行,终端退出后命令仍旧执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值