标签:while monit back epo usr for war grep cron
task1.php
<?php error_reporting(E_ERROR | E_WARNING | E_PARSE); // redis $redis = new Redis(); $redis->pconnect(REDIS_HOST, REDIS_PORT); $redis->auth(REDIS_PASS); // task while (true) { $task = $redis->rPop(‘mytask1‘); if ($task !== false) { // todo continue; } sleep(1); } ?>
task_monitor.php
<?php error_reporting(E_ERROR | E_WARNING | E_PARSE); // 任务数组 $tasks = array( ‘task1.php‘, ‘task2.php‘, ‘task3.php‘, ‘task4.php‘, ‘task5.php‘ ); // 查找正在运行的任务 $cmd = "ps -ef | grep ‘task‘"; $res = shell_exec($cmd); $all = explode("\n", $res); $running = array(); for($i=0; $i<count($all); $i++){ $array = explode("php ", $all[$i]); $p = trim($array[1]); if(!empty($p)) { $p = str_replace(‘/mytask/‘, ‘‘, $p); $running[] = $p; } } echo(date(‘Y-m-d H:i:s‘)."\n"); $date=date(‘YmdHis‘); // 查找不在运行的任务并启动任务 for($i=0; $i<count($tasks); $i++){ if(in_array($tasks[$i], $running)) { echo($tasks[$i]." is running\n"); } else { echo($tasks[$i]." is dead\n"); $cmd = "nohup /usr/bin/php /mytask/".$tasks[$i]." >/mytask/nohup/mytask.log 2>&1 &"; $res = shell_exec($cmd); } } echo("\n"); ?>
标签:while monit back epo usr for war grep cron
原文地址:https://www.cnblogs.com/coffee_cn/p/12101382.html