【发布时间】:2017-02-27 12:04:14
【问题描述】:
我正在使用 PHPs 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 代码中,它可以正常工作,但显然它会挂起,这意味着在我关闭 RDP 连接之前我无法使用 PHP 做任何其他事情。
问题
如何从我的 exec 命令(或其他 php 命令)打开 RDP,而不使其暂停所有 PHP 脚本的执行?
【问题讨论】:
-
“添加它会阻止脚本一起执行”是什么意思。在命令末尾添加
&将使您在后台运行命令,执行命令后您期望什么? -
@HassanAhmed 当远程桌面应用程序启动时我的网页在关闭之前不会执行任何进一步的 PHP 命令,
-
你是如何使用
> /dev/null &编写命令的? ,您能否使用完整的命令代码更新示例 -
@HassanAhmed Ive 更新了我的问题
-
请问您的服务器操作系统是什么?