Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.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模拟在使用screen时按enter键?_Php_Linux_Bash_Exec_Gnu Screen - Fatal编程技术网

如何通过PHP模拟在使用screen时按enter键?

如何通过PHP模拟在使用screen时按enter键?,php,linux,bash,exec,gnu-screen,Php,Linux,Bash,Exec,Gnu Screen,我正在尝试创建一个bash脚本来重新加载或停止我的Minecraft服务器。我创建它是为了使用shell\u exec()在PHP中运行它。到目前为止,我还没有弄清楚如何模拟按下回车键 我试过: screen -S minecraft -X stuff $"reload\n" screen -S minecraft -X stuff "reload" screen -S minecraft -X stuff $'reload\n' 这3个选项中的最后一个选项在我从bash运行时有效,但通过

我正在尝试创建一个bash脚本来重新加载或停止我的Minecraft服务器。我创建它是为了使用
shell\u exec()
在PHP中运行它。到目前为止,我还没有弄清楚如何模拟按下回车键

我试过:

screen -S minecraft -X stuff $"reload\n"

screen -S minecraft -X stuff "reload"

screen -S minecraft -X stuff $'reload\n'
这3个选项中的最后一个选项在我从bash运行时有效,但通过PHP打印执行它

>$reload\n
而且它从不点击“回车”,因此即使输入错误,命令也不会通过

我在sudoers文件中有www数据,可以执行这个bash文件。屏幕正在另一个帐户(minecraft)上运行。以下是我的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;
echo“您的帐户已被验证。调用了服务器重新加载命令。”;
$output=exec(“sudo-u minecraft/var/www/pditbp/commands/reload.sh”);
echo“运行重新加载命令的输出已产生:”;
echo$输出;

有什么想法吗?

这已经解决了,伙计们。感谢所有人的关注。我会在等待8小时后发布答案,因为我还没有足够的声誉。谢谢@Edwin。我已经从你的答案中删除了它,但是如果你想复制粘贴它,它在。