【发布时间】:2015-07-10 15:25:41
【问题描述】:
我有一个在 Debian 上运行的 PHP 脚本,它调用 ping 命令并使用 exec() 将输出重定向到一个文件:
exec('ping -w 5 -c 5 xxx.xxx.xxx.xxx > /var/f/ping/xxx.xxx.xxx.xxx_1436538580.txt &');
然后 PHP 脚本有一个 while 循环扫描 /var/f/ping/ 文件夹并检查 ping 是否已完成写入。我尝试使用以下命令检查输出:
exec('lsof | grep /var/f/ping/xxx.xxx.xxx.xxx_1436538580.txt');
查看文件是否仍然打开,但返回结果需要 lsof 大约 10-15 秒,这对于我们需要的东西来说太慢了。理想情况下,它应该能够在 2 或 3 秒内检查到这一点。
是否有更快/更好的方法来测试 ping 是否完成?
【问题讨论】: