Я хочу иметь возможность запускать сеансы экрана на удаленных серверах с помощью одной команды ssh на моем рабочем столе. Однако экран, похоже, нуждается в терминале, который недоступен при запуске команды через ssh.
Итак, очевидное
ssh root@my.machine screen "tail -f /var/log/messages"
(как пример) не работает, а дает
Must be connected to a terminal.
Я хочу, чтобы ssh запускал команду под экраном, чтобы я мог войти позже и подключиться так же, как и к сеансу экрана, который я бы запустил вручную.
ssh
terminal
gnu-screen
tty
Томас Вандер Стичеле
источник
источник
Ответы:
Попробуйте использовать опцию -t для ssh
От человека сш
источник
ssh -t user@machine tmux attach
и я могу прикрепить удаленный сеанс tmux, но он портится с кодировкой символов. Он отображает только символы ASCII. можно ли это исправить?Вы можете использовать:
Это запускает отдельный экран с командой, запущенной на нем.
источник
Поздний ответ, но это то, что я делаю, я делаю псевдоним (давайте назовем его t), который делает это:
Это говорит
ssh
об отключении агента и переадресации X11, а также говоритscreen
о необходимости присоединения к запущенному сеансу, запуска нового при необходимости, использования в^Z
качестве команды прерывания, использования UTF-8 и умения относиться к терминалу.Все это означает, что я могу открыть терминал, набрать,
t
и он откроет мой экранный сеанс на $ MYSERVER. Затем я могу открыть другой терминал, сделать то же самое, и я получаю другое окно для того же сеанса.Очень приятно иметь несколько окон терминала в одном сеансе экрана, так что вы можете одновременно смотреть на две вкладки экрана.
источник
t
которому относится один хост, вы можете объединить его с именами хостов в вашем ssh_config.Поместив следующее в файл ~ / .bashrc на моем сервере, он запускает сеанс экрана при первом входе на сервер или, если он уже запущен, повторно подключает меня к этому сеансу.
Я нахожу это очень удобным:
источник
screen -ls
я не вижу ни одного сеанса экрана