【发布时间】:2012-01-09 19:49:11
【问题描述】:
我有两台服务器 Debian Squeeze 32 和 Ubuntu 11.10 Server 64。相同的脚本使用相同的命令,行为会大不相同。
脚本 test.php:
<?php for ($i = 0; $i < 5; $i++) { echo $i, "\n"; sleep(1); }
命令:
php -q test.php &
ps | grep php
Debain:我看到正在打印的数字和进程标题是 php -q test.php 符合预期。 pidof "php -q test.php" 工作正常。
Ubuntu:没有数字;进程标题是php。 pidof "php -q test.php" 不起作用,我不能使用pidof php。
Ubuntu 出了什么问题?
更新哇! pgrep -f "php -q test.php" 运行良好,而 pidof "php -q test.php" 则不行。
更新 2 我不确定这是否适用,但在 Debian 下,我在常规控制台中工作,而 Ubuntu 正在通过 SSH 访问。
【问题讨论】:
-
可能值得尝试将完整的命令行提供给 php
-
@Dagon
/usr/bin/php -q test.php &然后ps | grep php产生完全相同的结果。php是标题,pidof的行为相同。 -
在同一个 64 位 Ubuntu 版本上为我工作。
-
我可以重现该问题。我正在使用 Ubuntu 12.04 AMD64 和 Debian Squeeze 32 (VirtualBox)。
-
我还尝试通过 ssh 从 Squeeze 机器连接到 Ubuntu 机器。问题依然存在。所以我认为这不是终端问题