我尝试将我的我的Minecraft白名单通过php更新到我的linux服务器。 连接工作,但我不知道为什么他没有发送我的命令将用户添加到白名单。
这是我的代码:
function addorder($name,$price){
echo $name." Price: ".$price;
echo "<br>";
alert("function worked");
}
答案 0 :(得分:1)
您正在使用&&
加入命令,所有这些命令将在您当前的shell中一个接一个地执行,而不是在屏幕内。 screen
可以在所选会话中执行命令,但使用自己的语法。例如,请参阅this question或manual。在您的情况下,命令必须如下所示:
screen -S session_name -X stuff $'whitelist add user_name && whitelist reload\n'
注意字符串末尾的\n
符号。由于screen
不会真正执行命令,因此执行命令是必需的,screen
将“将指定的命令发送到正在运行的屏幕会话”,如手册所述。考虑屏幕将输入命令而不是您。输入命令时,必须按Enter / Return键才能执行。
在PHP中,您可以这样执行命令:
$stream = ssh2_exec($ssh, "screen -S $mc -X stuff \$'whitelist add $name && whitelist reload\\n'");