2011-05-11 56 views
3

我在1小時內在命令行運行shell。我想用PHP腳本來阻止它。 我知道它的$ pid是2000通過使用getmypid();我不能在Ubuntu腳本中殺死進程

我使用PHP腳本爲:exec("kill 2000");exec("kill -KILL 2000"); exec("kill -9 2000"); posix_kill(2000,9);但不能殺死它。

如果在終端,我簡單使用~$ kill 2000。但不能用php腳本。

+0

對不起,我不知道這個。附加信息,shell運行php腳本 – meotimdihia 2011-05-11 22:18:02

回答

2

如果您使用安全模式運行PHP,則必須更改safe_mode_exec_dir以包含kill二進制文件的目錄,您還必須使用「su -c」來終止不屬於您自己的進程。它還取決於exec()是否在php.ini中的disabled_functions列表中。

+0

我使用exec(「su -c kill 2000」)它不起作用。 – meotimdihia 2011-05-11 22:20:13

+0

使用 <?php error_reporting(E_ALL); ini_set('display_errors','1'); $ output = exec(「su -c kill 2000」); echo $ output; ?> 並查看是否出現錯誤。 – CMck 2011-05-11 22:23:29

+0

我更改爲var_dump($ output);返回字符串''(長度= 0)。沒有警告,錯誤。 – meotimdihia 2011-05-11 22:34:05

0

檢查您的安全模式配置php.ini。有關更多信息,請參見here