我使用PHP exec()
函数来执行.bat
文件,但我遇到了问题。整个站点挂起等待exec命令的响应。我的.bat
文件包含以下内容...... mstsc /v:192.168.1.1
IP地址就是一个例子。
我的代码
我已经浏览了一下并尝试将' > /dev/null &'
添加到我的脚本中,但添加此内容会阻止脚本一起执行。继承了我的完整代码:(这是在我的laravel控制器中)
public function startRemoteDesktop(Request $request)
{
$name = $request->input('name');
$ip_address = $request->input('ip');
$path = public_path() . '/files/bat_files/'. $name . '.bat';
$contents = 'mstsc /v:' . $ip_address;
if(File::exists($path))
{
return 'RDP Connection Currently In Use!';
}
File::put($path, $contents);
exec($path);
File::delete($path);
exec($path . ' > /dev/null &'); //Alternative exec command that ive tried
}
注意
没有' > /dev/null &'
添加到我的exec代码它工作正常,但很明显它挂起意味着我不能用PHP做任何其他事情,直到我关闭RDP连接。
问题
如何从我的exec命令(或其他php命令)中打开RDP,而不会让所有PHP脚本暂停执行?
答案 0 :(得分:0)
我发现使用popen($path, 'r');
允许PHP继续执行脚本而无需等待当前.bat
文件发送响应