PHP CLI脚本如何检测是否在后台运行?

PHP CLI脚本如何检测是否在后台运行?,php,background,command-line-interface,detection,Php,Background,Command Line Interface,Detection,我正在开发一个cliphp脚本,它既可以在前台执行,也可以在后台执行。如果在前台运行,我希望能够与获取输入信息的用户交互。显然,如果脚本在后台使用“&”参数启动,则应跳过任何用户交互 那么,PHP脚本是否有办法检测它是否已在后台启动?无法检测它是否在后台运行。我还是没有找到任何办法 一种方法是遍历进程列表并检查/usr/bin/php 最好的方法是使用参数(例如--daemon)。当传递此参数时,它将在后台运行,否则它将在前端打印有用的信息 您可以使用pear包创建守护进程。有一个Unix(我通

我正在开发一个cliphp脚本,它既可以在前台执行,也可以在后台执行。如果在前台运行,我希望能够与获取输入信息的用户交互。显然,如果脚本在后台使用“&”参数启动,则应跳过任何用户交互


那么,PHP脚本是否有办法检测它是否已在后台启动?

无法检测它是否在后台运行。我还是没有找到任何办法

一种方法是遍历进程列表并检查
/usr/bin/php

最好的方法是使用参数(例如
--daemon
)。当传递此参数时,它将在后台运行,否则它将在前端打印有用的信息

您可以使用pear包创建守护进程。

有一个Unix(我通过它找到的),它基本上声称它无法可靠地完成。文章给出的一个建议是检查
stdin
是否为终端:

sh: if [ -t 0 ]; then ... fi
C: if(isatty(0)) { ... }

我同意Pekka的评论,即您应该只为脚本提供一个参数。
-i
(用于交互)选项有时用于此明确目的。如果未传递该参数,则可以假定您处于“自动”模式。

我不知道-系统级别上可能有。但是,仅仅向脚本传递一个参数不是要简单得多吗