Я видел некоторые подобные вопросы, но решения, похоже, не работают в моем случае.
Я пытаюсь подключиться по SSH к определенному экземпляру экрана на машине Node, а затем выполнить некоторые команды.
Мой текущий процесс таков:
На удаленной машине я создаю экземпляр экрана:
screen -dmS "my_screen"
С моей локальной машины я делаю что-то вроде:
ssh <user>@<remote> -a -x -t screen -x -r my_screen -X stuff 'ruby my_script.rb'
но вывод просто:
Соединение по адресу (ip) закрыто.
и скрипт ruby не запускается.
Если я разделю команды, то скрипт будет работать правильно, например:
ssh <user>@<remote> -a -x -t screen -x -r my_screen
он подключается к экрану, а затем я вручную ввожу:
ruby my_script.rb
exit
Затем сценарий выполняется на экране, как и предполагалось.
Как правильно отправлять команды на экран?
screen
неудобна.tmux
гораздо проще автоматизировать благодаря современной архитектуре и хорошей документации. - person chicks   schedule 18.08.2016