Я в немного сложной ситуации, когда мне нужно подключиться к серверу через SSH через плагин Jenkins. Нет возможности передать флаг -t
и получить себе pseudo-tty
сессию, чтобы я мог использовать screen
.
Можно ли как-то обойти эту проблему, если подключение уже установлено, кроме создания вложенного сеанса SSH?
решение1
Если вы хотите использовать экран для отображения чего-либо, вам понадобится терминал.
Если вы хотите только начать новый сеанс, но не отображать его, вызовите screen -m -d
. Сеанс начинается отсоединенным.
Если вы хотите взаимодействовать только с существующим сеансом, используйте -X
опцию отправки команды в этот сеанс. Это не прикрепляется к сеансу и не требует терминала. Обратите внимание, что если сеанс экрана был запущен в отсоединенном режиме, его начальное окно неактивно, поэтому вам, вероятно, нужно будет выбрать окно, -p
прежде чем что-либо делать, например
screen -d -m long-running-command
screen -p 1 -X stuff 'yes^M'
Что бы вы ни делали, вам, вероятно, захочется использовать воспроизводимое имя сеанса и всегда передавать опцию, -S
чтобы знать, с каким сеансом вы общаетесь.