使用cron+php脚本监控后台任务脚本
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"); ?>
相关推荐
Greatemperor 2020-05-03
逆时针 2020-02-10
chunianyo 2020-01-02
taiyangshenniao 2019-12-16
lihaoxiang 2019-11-14
89463661 2019-11-01
guchengxinfen 2019-07-18
benbendy 2016-09-30
LiteHeaven 2019-07-01
freesky 2019-07-01
wlzjiayou 2019-06-30
chenhua 2019-06-28
Martnn 2019-06-27
ououlal 2010-12-20
83251242 2019-06-20
dxbjfu0 2019-06-20
哈嘿Blog 2018-01-12
sunnyishere 2012-04-20
Python探路者 2019-04-22