Страницы

Поиск по вопросам

четверг, 23 января 2020 г.

Ошибка при создании screen

#php #linux #ssh #gnu_screen


Здравствуйте. Есть скрипт на PHP ,который выполняет команду screen -S test337 через
SSH ,вот он:

/* Соединение */
$connect = ssh2_connect($rows1['ip'], $rows1['sshport']);
ssh2_auth_password($connect, $rows1['login'], base64_decode($rows1['password']));
$shell = ssh2_shell($connect);

/* Выполнение команды */
fwrite($shell, 'screen -S test337'.PHP_EOL);

/* Получение ответа */
$text = '';
while($buf = fread($shell,4096)) {$text .= $buf;};
echo '
'.$text; /* Закрытие соединения */ fclose($shell); В переменой $rows1 хранятся данные от SSH. Но сервер выдаёт ошибку: Cannot find terminfo entry for 'vanilla' Если даже отправить просто команду screen ,он вернёт точно такую же ошибку. На сервере стоит CentOS 6.* Подскажите пожалуйста как это можно исправить? И из-за чего это вообще может происходить?


Ответы

Ответ 1



исправить ошибку можно, установив переменной окружения TERM какое-нибудь более распространённое (а значит, с большей вероятностью присутствующее в целевой системе) значение. например, xterm, или даже vt100. дополните вызов программы screen таким присвоением значения переменной TERM: TERM=xterm screen ... или таким: TERM=vt100 screen ...

Комментариев нет:

Отправить комментарий