如何模拟通过PHP使用屏幕时按Enter键?

时间:2014-07-12 14:48:41

标签: php linux bash exec gnu-screen

我正在尝试创建一个重新加载或停止我的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;

有什么想法吗?

0 个答案:

没有答案