phpseclib и экран не работают

Если я использую phpseclib для продолжения экрана, он не работает так, как я хочу.

Если я использую:

    <?php
include('Net/SSH2.php');

$ssh = new Net_SSH2('XXX.XXX.XXX.XXX');
if (!$ssh->login('loginname', 'password')) {
    exit('Login Failed');
}

echo $ssh->write("screen -R minecraft\n");
echo $ssh->exec("cd /home/ftpmc/mc/; java -Xmx4096M -Xms4096M -jar craftbukkit.jar nogui");
?>

Затем он показывает 1, а затем запускает сервер Minecraft, но не на экране. Есть ли альтернатива, которая, как известно, хорошо работает с phpseclib, или я что-то здесь делаю неправильно?


person Paul de Koning    schedule 11.12.2016    source источник
comment
ничего не знаю об экране, но скажу, что write() и exec() работают в разных каналах. Так что это похоже на то, что вы делаете... у вас есть два окна PuTTY, и в одном из них вы вводите screen -R minecraft, а в другом - cd /home/ftpmc/mc/; java -Xmx4096M -Xms4096M -jar craftbukkit.jar nogui. ИДК, если это понимание поможет ..   -  person neubert    schedule 13.12.2016


Ответы (1)


neubert на правильном пути, укажите команды, которые вы хотите выполнить (в примере это 'vim'), в качестве дополнительных аргументов для команды 'screen', например:

screen -S minecraft -X stuff 'cd /tmp; vim^M'
person ma-ti    schedule 13.12.2016
comment
Спасибо, попробую через пару часов. Я вернусь к посту и скажу, сработало ли это :) - person Paul de Koning; 13.12.2016