我正在尝试创建一个用于管理我的Ubuntu托管的Minecraft服务器的Web界面。我使用屏幕以使控制台可重新访问。我不明白为什么以下代码不起作用:
$ssh->read('quadrplax@quadrplax-laptop:~$');
$ssh->write("screen -rd\n");
$ssh->write("stop\n");
现在,不要问我为什么,但如果我添加这个无用的代码:
$randid=rand(0, 1000000);
$consolemsg=strval($randid);
$ssh->read('quadrplax@quadrplax-laptop:~$');
$ssh->write("screen -rd\n"); // note the "\n"
$ssh->write("say Stopping server - ID:".$consolemsg."\n");
echo $ssh->read(" [INFO] [Minecraft-Server] [Server] Stopping server - ID:".$consolemsg);
$ssh->write("stop\n");
然后它将能够断开屏幕会话,但页面将在超时之前加载几分钟。对不起这是多么愚蠢,我找不到任何好的phpseclib指南,它们都是同一指南的副本,不提供任何长篇例子。我已经能够得到一些工作,例如我的暂停代码以某种方式工作:
$ssh->read('quadrplax@quadrplax-laptop:~$');
$ssh->write("sudo pm-suspend\n");
$ssh->setTimeout(5);
$output = $ssh->read('#[pP]assword[^:]*:|quadrplax@quadrplax-computer:~\$#', NET_SSH2_READ_REGEX);
$ssh->write("FAKEPASSWORD\n");
很抱歉格式错误或其他任何内容,第一次来这里。我很难提交这篇文章。有人可以帮我解决这个问题吗?
编辑:修复了复制粘贴错误