我有以下PHP代码:
shell_exec("(traceroute odesk.com > trace.txt;echo 'traceIsDone'>>trace.txt) &");
此行需要50秒才能完成,它可以使用ping,当我在终端窗口中执行该行时,它会立即返回:
(traceroute odesk.com > trace.txt;echo 'traceIsDone'>>trace.txt) &
如何在PHP转到下一行后立即执行该命令?所以不要等待shell_exec命令完成?
答案 0 :(得分:2)
您应该使用popen()
:
打开通过分叉命令执行的命令执行的进程的管道。
它说它分叉命令,即它在一个新线程中启动它,因此它不会阻塞你的主线程。因此,我认为这就是你想要使用的东西。
您可以使用fopen()
(如果您熟悉它),使用fgets()
,fgetss()
和fwrite()
。