phpseclib SSH2:为什么我的命令不能运行?

phpseclib SSH2:为什么我的命令不能运行?,php,ubuntu,ssh,minecraft,phpseclib,Php,Ubuntu,Ssh,Minecraft,Phpseclib,我正在尝试制作一个web界面来管理我的Ubuntu托管的Minecraft服务器。我使用屏幕以使控制台可重新访问。我不明白为什么以下代码不起作用: $ssh->read('quadrplax@quadrplax-laptop:~$'); $ssh->write("screen -rd\n"); $ssh->write("stop\n"); 现在,不要问我为什么,但是如果我添加了这个无用的代码: $randid=rand(0, 1000000);

我正在尝试制作一个web界面来管理我的Ubuntu托管的Minecraft服务器。我使用屏幕以使控制台可重新访问。我不明白为什么以下代码不起作用:



    $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");

很抱歉出现格式错误或任何问题,第一次在这里。我很难让这篇文章提交。有人能帮我解决这个问题吗


编辑:修复了复制粘贴错误

报价单是复制粘贴错误。在我从未费心删除的实际代码中有一条注释:“//注意\n”。我不相信$ssh->setTimeout5;在您发布的最后一个代码段中应该是必需的。至于其余的。。。idk您可以启用日志记录并发布日志吗?例如,添加定义“净SSH2记录”,3;在文件的顶部。如果你能把日志放在pastebin.com上,并在这里发布链接,那会很有帮助!