PHP:如何编写显示在';ps&x27;指挥部?
如果我使用sleep语句编写Bash shell程序,我可以执行以下操作来检查其状态:PHP:如何编写显示在';ps&x27;指挥部?,php,sleep,ps,Php,Sleep,Ps,如果我使用sleep语句编写Bash shell程序,我可以执行以下操作来检查其状态: ps aux | grep sleep 如果我有一个睡眠发生了很长一段时间,例如10分钟在PHP中尝试看看网络连接现在是否可用,我无法确定程序是否有问题或它是否正确执行睡眠功能 我想的一种方法是,将带有时间戳的睡眠状态写入日志文件。但我想知道是否有可能和实际的能力来写这个状态,这样它就会出现在执行“ps aux | grep sleep”的时候,这个正在运行的php编程正在休眠 还是有更好的方法和途径?谢谢
ps aux | grep sleep
如果我有一个睡眠发生了很长一段时间,例如10分钟在PHP中尝试看看网络连接现在是否可用,我无法确定程序是否有问题或它是否正确执行睡眠功能
我想的一种方法是,将带有时间戳的睡眠状态写入日志文件。但我想知道是否有可能和实际的能力来写这个状态,这样它就会出现在执行“ps aux | grep sleep”的时候,这个正在运行的php编程正在休眠
还是有更好的方法和途径?谢谢 可能创建一个sleep-php.sh,然后用bash命令执行它,我认为它是
源sleep-php.sh
。然后,您可以grep for sleep-php.sh,而不必冒险将其与碰巧运行的另一个sleep命令混淆
您甚至可以进一步动态创建“sleep php-$id.sh”,这样您就可以在sleep中包含更多信息,这里是am id示例。IMHO,最好的方法不是将您的跟踪器/记录器放在较低级别的操作系统中,而是放在php本身中 我建议编写一个PHP循环,尝试次数有限,两次尝试之间的等待时间更短,这样就可以记录每个循环,以及每个循环的网络连接轮询结果。 一旦获得了连接网络,就断开环路。 如果循环完成且未获得网络访问,则发出相关消息/业务操作
define("MAX_ATTEMPT_COUNT", 10);
define("WAITING_TIME", 60);
$NetworkAccess = false;
$fd = fopen("netpoll.log", 'a');
if (!$fd) die("I thought I could open netpoll.log but I can't.");
for($i=1; $i<=MAX_ATTEMPT_COUNT; $i++) {
fwrite($fd, "Entering loop #" . $i);
$NetworkAccess |= pollNetwork(); // can be |= or simply =
if ($NetworkAccess) {
fwrite($fd, "network access acquired, exiting loop.");
break;
}
fwrite($fd, "No cigar, I'll try again in " . WAITING_TIME . " seconds.");
sleep(WAITING_TIME);
}
if(!$NetworkAccess) {
fwrite($fd, "No network access after " . MAX_ATTEMPT_COUNT*WAITING_TIME . " seconds, giving up.");
}
fclose($fd);
定义(“最大尝试次数”,10);
定义(“等待时间”,60);
$NetworkAccess=false;
$fd=fopen(“netpoll.log”,“a”);
如果(!$fd)死了(“我以为我可以打开netpoll.log,但我不能。”);
对于($i=1;$i),这个神秘的php脚本应该在做什么?