[英]Where will my errors be recorded when running a php script using exec()? exec('php script.php > /dev/null &');
[英]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是一个阻塞命令,因为它等待输出。
如果要启动进程/守护程序,则应查看popen或proc_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.