如何在没有php脚本中断的情况下执行外部程序
发布时间:2020-12-13 17:17:42 所属栏目:PHP教程 来源:网络整理
导读:例如: //test.php#! /usr/local/php/bin/php?phpexec('nohup ./loop.php loop.out');echo 'I am a superman!';//loop.php#! /usr/local/php/bin/php?php$count = 0;while (true) { echo "Loop count:{$count}n"; $count++;} 当我运行./test.php时,我无法得
例如:
//test.php #! /usr/local/php/bin/php <?php exec('nohup ./loop.php > loop.out'); echo 'I am a superman!'; //loop.php #! /usr/local/php/bin/php <?php $count = 0; while (true) { echo "Loop count:{$count}n"; $count++; } 当我运行./test.php时,我无法得到输出’我是超人!’,因为你知道loop.php是一个无限循环,test.php被loop.php打断,所以我怎么能得到输出?任何帮助表示赞赏. 解决方法
您可以通过多种方式实现此目标:
使用&运行后台进程: exec('nohup ./loop.php > loop.out 2>&1 &'); 使用pcntl_fork并从子进程运行您的进程: $pid = pcntl_fork(); switch ($pid){ case -1: die('Fork failed'); break; case 0: exec('nohup ./loop.php > loop.out'); exit(); default: break; } echo "I'm not really a superman,just a parent process'; 有更多的方法可以做到这一点,只需潜入PHP文档和php中的问题…… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |