繁体   English   中英

加载脚本后,在SSH2_EXEC之后停止页面加载

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM