Php 加载脚本时,在SSH2_EXEC之后停止页面加载
我知道了如何在CentOS 6.6服务器中生成一些shell脚本,并从PHP网页上运行它们。我唯一的问题是其中一个脚本(用于启动游戏服务器)实际上并没有停止运行。我的意思是,如果我从SSH终端执行它,脚本运行,游戏服务器启动,但它永远不会返回到bash,所以我可以输入一个新命令 如果我想输入新命令(即停止服务器或退出终端),我必须按Ctrl+C 我的问题是PHP页面从不停止“加载”。在我从页面运行脚本后,游戏服务器启动,但页面继续加载。我怎样才能避免这种情况 我想我可以在我的shell脚本中设置一个10秒的计时器,然后执行某种Ctrl+C命令,告诉我的PHP脚本它已经完成了脚本的运行,但我不知道这是否可行,也不知道如何实现 以下是启动游戏服务器的shell脚本:Php 加载脚本时,在SSH2_EXEC之后停止页面加载,php,linux,bash,shell,Php,Linux,Bash,Shell,我知道了如何在CentOS 6.6服务器中生成一些shell脚本,并从PHP网页上运行它们。我唯一的问题是其中一个脚本(用于启动游戏服务器)实际上并没有停止运行。我的意思是,如果我从SSH终端执行它,脚本运行,游戏服务器启动,但它永远不会返回到bash,所以我可以输入一个新命令 如果我想输入新命令(即停止服务器或退出终端),我必须按Ctrl+C 我的问题是PHP页面从不停止“加载”。在我从页面运行脚本后,游戏服务器启动,但页面继续加载。我怎样才能避免这种情况 我想我可以在我的shell脚本中设置
#!/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“$@”和
./serverstart "$@" &