通过shell在后台运行php脚本 - 脚本永远不会在mac os x上执行

时间:2012-03-01 18:25:14

标签: linux macos shell

我有一个php脚本,负责根据数据库中包含的队列发送电子邮件。

该脚本在从我的shell执行时起作用:

/ usr / bin / php -f /folder/email.php

然而,当我执行它以在后台运行时:

/ usr / bin / php -f /folder/email.php> / dev / null&

它永远不会完成,并且该进程只位于进程队列中:

clickonce:ps T

PID TT STAT TIME COMMAND

1246 s000 Ss 0:00.03 login -pf

1247 s000 S 0:00.03 -bash

1587 s000 T 0:00.05 / usr / bin / php -f /folder/email.php

1589 s000 R + 0:00.00 ps T

所以我的问题是如何将其作为后台进程运行并让它实际执行?我需要配置我的操作系统吗?我是否需要更改执行命令的方式?

1 个答案:

答案 0 :(得分:1)

“STAT”列中的“T”表示停止的过程。我猜你的脚本试图从stdin读取输入并且因为它不是前台进程而被停止,因此不允许读取。

您应该检查脚本在执行时是否确实读取了某些内容。