我正在尝试创建一个重新加载或停止我的Minecraft服务器的bash脚本。我正在创建这个,所以我可以使用shell_exec()
通过PHP运行它。到目前为止,我还没弄清楚如何模拟按下回车键。
我试过了:
screen -S minecraft -X stuff $"reload\n"
screen -S minecraft -X stuff "reload"
screen -S minecraft -X stuff $'reload\n'
当我从bash运行它时,这3个中的最后一个选项工作,但是通过PHP打印执行它
>$reload\n
它永远不会命中'enter',所以即使输入错误,命令也不会通过。
我在sudoers文件中有www-data能够执行这个bash文件。屏幕正在另一个帐户(我的世界)上运行。这是我的PHP端代码:
echo " Your account has been verified. Server reload command called.";
$output = exec("sudo -u minecraft /var/www/pditbp/commands/reload.sh");
echo "The output of running the <b>reload</b> command has produced: ";
echo $output;
有什么想法吗?