Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 加载脚本时,在SSH2_EXEC之后停止页面加载_Php_Linux_Bash_Shell - Fatal编程技术网

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

Php 加载脚本时,在SSH2_EXEC之后停止页面加载,php,linux,bash,shell,Php,Linux,Bash,Shell,我知道了如何在CentOS 6.6服务器中生成一些shell脚本,并从PHP网页上运行它们。我唯一的问题是其中一个脚本(用于启动游戏服务器)实际上并没有停止运行。我的意思是,如果我从SSH终端执行它,脚本运行,游戏服务器启动,但它永远不会返回到bash,所以我可以输入一个新命令 如果我想输入新命令(即停止服务器或退出终端),我必须按Ctrl+C 我的问题是PHP页面从不停止“加载”。在我从页面运行脚本后,游戏服务器启动,但页面继续加载。我怎样才能避免这种情况 我想我可以在我的shell脚本中设置

我知道了如何在CentOS 6.6服务器中生成一些shell脚本,并从PHP网页上运行它们。我唯一的问题是其中一个脚本(用于启动游戏服务器)实际上并没有停止运行。我的意思是,如果我从SSH终端执行它,脚本运行,游戏服务器启动,但它永远不会返回到bash,所以我可以输入一个新命令

如果我想输入新命令(即停止服务器或退出终端),我必须按Ctrl+C

我的问题是PHP页面从不停止“加载”。在我从页面运行脚本后,游戏服务器启动,但页面继续加载。我怎样才能避免这种情况

我想我可以在我的shell脚本中设置一个10秒的计时器,然后执行某种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 "$@" &