繁体   English   中英

PHP exec函数:重定向到dev / null退出脚本(Ratchet循环)

[英]PHP exec function : redirect to dev/null to exit script ( Ratchet loop )

我正在使用棘轮来构建telnet / php程序。

我需要能够检查服务器循环是否正在运行,以及是否无法通过php exec命令启动它,然后将启动循环的信息发送给客户端。

我有以下几行:

$file = "php " . ABS_PATH . "inc/lib/telnet/telnet_server.php > /dev/null &";
exec($file);

print "done";

不幸的是,该脚本似乎挂在exec部分中,因此我无法将信息发送给客户端。

我在EasyPHP环境中本地工作,因此我需要能够先在Windows下然后在Linux Web服务器上测试结果。

任何帮助表示赞赏...

提前谢谢!

exec是一个阻塞命令,因为它等待输出。
如果要启动进程/守护程序,则应查看popenproc_open

由于您可能想将数据发送到流程,因此需要后者。

您可以使用proc_get_status检索和存储PID(进程ID),以便稍后检查进程是否已经在运行。

好的,这里的评论部分似乎有一个有效的答案: PHP手册

希望这对某人有帮助^^

我前一段时间遇到这个问题,并写了一个简洁的小功能,可在Windows和Linux上运行,以便在后台运行进程

function execInBackground($cmd) {
    if (substr(php_uname(), 0, 7) == "Windows"){
        pclose(popen("start /B ". $cmd, "r"));
    }
    else {
        exec($cmd . " > /dev/null &");
    }
}

用法非常简单,在您的情况下为execInBackground("php " . ABS_PATH . "inc/lib/telnet/telnet_server.php");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM