管理Linux进程的监控类

 <textarea cols="74" rows="45" name="code" class="php:nocontrols">/** * Monitor 监控程序 * @author yangyu &lt;[email protected]&gt; * @version 1.0_20100110 * @package daemon */ &lt;?php class Monitor { private $bin_php = '/opt/bin/php'; // php执行文件路径 private $path_daemon = '/opt/www/daemon/deal/'; // daemon根目录 private $process = array( 'cron_test.php', // crontab 测试 ); public function __construct() { foreach($this-&gt;process as $process) { if(!$this-&gt;checkpro($process)) $this-&gt;startpro($process); } return 1; } private function checkpro($process) { $cmd = "ps -aef | grep '{$this-&gt;path_daemon}{$process}' | grep -v 'grep' | wc -l"; $fp = @popen($cmd, "r"); $num = @fread($fp, 512); $num += 0; @pclose($fp); if($num&lt;=0) return 0; return 1; } private function startpro($process) { $cmd = "{$this-&gt;bin_php} {$this-&gt;path_daemon}{$process} &gt; /dev/null &amp;"; $fp = @popen($cmd, "r"); if($fp) @pclose($fp); } } ?&gt;</textarea>

 

大概解释一下吧,属性和构造函数那块就不说了,主要就是检查进程和开始进程这两个方法,$cmd后面那条命令是取得cron_test.php在执行的进程数量,grep匹配,-v反转匹配,这个也不用说了吧,wc = word count, -l = -line,就是行数,如果<=0,就开始在系统后台执行,没什么太多东西,就是当做一个监控管理工具类来用。

你可能感兴趣的:(linux,PHP,function,cmd,cron,FP)