加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

php实现连续ping远程服务器脚本

发布时间:2020-05-25 07:35:52 所属栏目:PHP 来源:互联网
导读:php实现连续ping远程服务器脚本

下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。

脚本之家小编现在分享给大家,也给大家做个参考。

脚本作用:持续ping该类服务器,保证中转路由能在业务使用时能够快速响应请求。
    <?php  
    define('LOGTAG','ping');  
    declare(ticks = 1);  
    $pid_arr = array();  
    pcntl_signal(SIGQUIT,'signal_handler');  
    pcntl_signal(SIGTERM,'signal_handler');  
      
    function run($servers_info)   
    {  
        echo "---------- ping task begin ----------";  
        global $pid_arr;  
        $index=0;  
        $name_arr = array();  
        $ip_arr = array();  
        foreach( $servers_info as $val) {  
            $name_arr[$index] = $val['server_name'];  
            $ip_arr[$index] = $val['server_ip'];  
            $index++;  
        }  
        $worker_count = $index;  
        $index=0;  
        while($index < $worker_count)   
        {  
            $pid = pcntl_fork();  
            if($pid == -1) {  
                die('could not fork');  
            }   
            else   
            {  
                if($pid) {  
                    $pid_arr[$index] = $pid;  
                } else {  
                    while(true) {  
                        handle($name_arr[$index],$ip_arr[$index]);  
                        sleep(1);  
                    }  
                }  
            }  
            $index++;  
        }  
        while (true) {  
            sleep(1);  
        }  
    }  
      
    function handle($name,$ip) {  
        echo "ping ".$name." ip:".$ip." start!";  
        exec("ping -c 1000 $ip",$list);  
        echo "ping ".$name." ip:".$ip." finish!";  
    }  
      
    function signal_handler($signal) {  
        global $pid_arr;  
        if ($signal == SIGQUIT || $signal == SIGTERM)   
        {  
            foreach ($pid_arr as $pid) {  
                posix_kill($pid,SIGTERM);  
            }  
            echo ”————— ping task finish ----------";  
            exit();  
        }  
    }  
      
    run();  
    ?>  

以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读