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)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。 如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
