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

Linux 通过shell在后台运行php脚本-脚本永远不会在mac os x上执行,linux,macos,shell,Linux,Macos,Shell,我有一个php脚本,负责根据数据库中包含的队列发送电子邮件 当从我的shell执行脚本时,该脚本可以正常工作,如下所示: /usr/bin/php-f/folder/email.php 但是,当我在后台执行它时: /usr/bin/php-f/folder/email.php>/dev/null& 它永远不会完成,流程只是位于流程队列中: 点击一次:ps T PID TT STAT TIME命令 1246 s000 Ss 0:00.03登录-pf 1247 s000 S 0:00.03-bash

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

当从我的shell执行脚本时,该脚本可以正常工作,如下所示:

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

但是,当我在后台执行它时:

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

它永远不会完成,流程只是位于流程队列中:

点击一次:ps T

PID TT STAT TIME命令

1246 s000 Ss 0:00.03登录-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

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

“STAT”列中的“T”表示进程已停止。我猜您的脚本正在尝试从stdin读取输入,并且正在停止,因为它不是前台进程,因此不允许读取

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

“STAT”列中的“T”表示进程已停止。我猜您的脚本正在尝试从stdin读取输入,并且正在停止,因为它不是前台进程,因此不允许读取


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

在这种情况下,require_once语句或db read会被视为stdin吗?从终端读取就是从stdin读取。作为一个实验,看看如果尝试从/dev/nully重定向输入会发生什么,我将如何形成该语句/usr/bin/php-f/folder/email.php