/dev / tty: нет такого устройства или адреса - только в скрипте

я вытягиваю свои волосы из-за этого. Я просмотрел все результаты google для /dev / tty : нет такого устройства или адреса, ни одно из них не относится к тому, что я делаю / ни одно из решений не является успешным.

у меня есть скрипт, который ssh'ES в другую машину (с помощью открытых ключей) и работает сам (с разными параметрами - это не цикл). Вызовите этот rpmInstallScript.bash

в какой-то момент скрипта он запускает rpm-ivh для установки некоторых пакетов RPM. во время при установке одного из этих пакетов в /var/tmp помещается файл rpm-tmp.[6 случайных символов]

этот файл является сценарием, и я думаю, что он выполняется в какой-то момент во время установки rpm.

в сценарии существует несколько вхождений

echo [something] > /dev/tty 

или

echo [something] | tee [something] > /dev/tty.

все эти события не с /dev/телетайп: нет такого устройства или адреса. Если я ssh в машину вручную и либо rpm пакеты самостоятельно, запустите сценарий rpm-tmp или запустите rpmInstallscript.Баш, все нормально работает.

я подключаюсь к удаленной машине с ssh-t, поэтому должен быть tty, правильно?

Я не понимаю, почему это не работает, особенно потому, что делать это вручную, даже без опции-t, работает нормально. Единственное, о чем я могу думать, это то, что это не интерактивная сессия, но /dev/tty все еще должен существовать, правильно?

Edit - ошибка возникает из:

ssh -t root@[machine] -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null <<DONE
./rpmInstallScript.bash

где rpmInstallScript.бить запускает rpm-ivh, результирующий скрипт помещенный в /var/tmp использует > / dev / tty - вот что выходит из строя

редактировать снова :
через -ТТ дает :

tcgetattr: Inappropriate ioctl for device

только при запуске из скрипта-вручную запуск ssh-tt, а затем echo test > / dev / tty работает нормально.

Я могу только предположить, что это неспособность заставить создать tty.

есть ли другой способ "генерировать" tty? Могу ли я просто подделать его, создав файл с именем/dev / tty?

20
задан Brydon Gibson
27.04.2023 21:40 Количество просмотров материала 2389
Распечатать страницу

1 ответ

попробовать -tt посмотреть, работает ли.

от SSH man страницы,

Multiple -t options force tty allocation, even if ssh has no local tty.

2
отвечен hkdtam 2023-04-29 05:28

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх