#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 ...
Комментариев нет:
Отправить комментарий