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

Рейтинг: 5Ответов: 1Опубликовано: 15.11.2014

Здравствуйте. Есть скрипт на 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 '<br>'.$text;

/* Закрытие соединения */
fclose($shell);

В переменой $rows1 хранятся данные от SSH.
Но сервер выдаёт ошибку:

Cannot find terminfo entry for 'vanilla'

Если даже отправить просто команду screen ,он вернёт точно такую же ошибку.
На сервере стоит CentOS 6.*
Подскажите пожалуйста как это можно исправить?
И из-за чего это вообще может происходить?

Ответы

▲ 2Принят

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

дополните вызов программы screen таким присвоением значения переменной TERM:

TERM=xterm screen ...

или таким:

TERM=vt100 screen ...