[英]Stop page load after SSH2_EXEC when script is loaded
我想出了如何在CentOS 6.6服务器中制作一些Shell脚本并从PHP网页运行它们的方法。 我唯一的问题是这些脚本(用于启动游戏服务器)之一实际上并没有停止运行。 我的意思是,如果我从SSH终端执行它,脚本运行并且游戏服务器启动,但它永远不会返回bash,因此我可以输入新命令。
如果要输入新命令(即停止服务器或退出终端),则必须按Ctrl + C。
我的问题是PHP页面永远不会停止“加载”。 从页面运行脚本后,游戏服务器启动,但页面继续加载。 如何避免这种情况?
我想我可以在我的shell脚本中放置10秒计时器,然后执行某种Ctrl + C告诉我的PHP脚本它已完成运行该脚本,但我不知道这是否可行或如何执行。
这是启动游戏服务器的外壳脚本:
#!/bin/sh
cd /home/user/serverfiles/
./serverstart "$@"
这就是我在网站上运行它的方式:
$ip = '192.168.0.30';
$user = 'user';
$pass = 'password';
$connection = ssh2_connect($ip);
ssh2_auth_password($connection,$user,$pass);
$stream = ssh2_exec($connection, 'stop');
$errorStream = ssh2_fetch_stream($stream, SSH2_STREAM_STDERR);
stream_set_blocking($errorStream, true);
stream_set_blocking($stream, true);
echo "Output: " . stream_get_contents($stream);
echo "Error: " . stream_get_contents($errorStream);
fclose($errorStream);
fclose($stream);
有任何想法吗?
尝试更换
./serverstart "$@"
通过
./serverstart "$@" &
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.