php检测进程,php – 检查进程是否仍在运行?

作为构建穷人看门狗的一种方法,并确保应用程序重新启动,以防万一它崩溃(直到我弄明白为什么),我需要编写一个PHP CLI脚本,将由cron每5mn运行一次,以检查进程是否还在跑

基于this page,我尝试了以下代码,但总是返回True,即使我使用伪造的数据:

function processExists($file = false) {

$exists= false;

$file= $file ? $file : __FILE__;

// Check if file is in process list

exec("ps -C $file -o pid=", $pids);

if (count($pids) > 1) {

$exists = true;

}

return $exists;

}

#if(processExists("lighttpd"))

if(processExists("dummy"))

print("Exists\n")

else

print("Doesn't exist\n");

(exec("ps -A | grep -i 'lighttpd -D' | grep -v grep", $output);)

print $output;

…但是没有得到我的期望:

/tmp> ./mycron.phpcli

Arrayroot:/tmp>

FWIW,此脚本使用CLI版本的PHP 5.2.5运行,操作系统是uClinux 2.6.19.3。

谢谢任何提示。

编辑:这似乎工作正常

exec("ps aux | grep -i 'lighttpd -D' | grep -v grep", $pids);

if(empty($pids)) {

print "Lighttpd not running!\n";

} else {

print "Lighttpd OK\n";

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值