我需要通过exec
函数从php运行命令行Linux程序。主要问题是我需要等待一个程序的结果,它会在一段时间后返回(从30秒到2分钟)。因为PHP没有多线程,所以所有站点都会停留在那个时候。有没有办法像“新线程”一样运行exec
(不在后台)?
答案 0 :(得分:1)
如果你说你不想在后台运行它,这是一个常见的解决方案,然后定期检查过程是否已经完成。
执行的程序在完成后可以将它的“返回值”写入临时文件。因此,如果文件存在,您就知道该过程已经完成,您可以使用结果。
这也是一个好习惯,不仅要检查临时文件的存在,还要检查执行的程序的进程ID。如果它没有提供它的PID,你可以使用start-stop-daemon之类的工具启动它,它可以提供这些信息。