Общий вопрос здесь - как мне автоматизировать sshing в машину, запустить скрипт и выйти из него, не убивая скрипт? Я знаю, что на это уже отвечали несколько раз, но мне не повезло с решениями, которые я нашел.
Детали:
У меня есть код, работающий на нескольких машинах, в которые я вхожу.
Прямо сейчас я делаю следующее в терминале:
ssh machine1@host (log in automatically with key)
screen -S screen_name
./script.sh
<keystroke C-a-d>
exit
Отнимает много времени и, что более важно, подвержен ошибкам (откройте экран и выйдите из него без запуска сценария и т.д.).
Я хотел бы автоматизировать это. Моей первой мыслью было попытаться воспроизвести это точно. Я пытался xdotool отправлять нажатия клавиш, но моя среда - только командная строка, и это похоже на неподходящий инструмент для работы. Точно так же ожидаемо выглядит, как будто его можно использовать вместо xdotool, но, опять же, вероятно, неправильный способ сделать это.
Я также попытался использовать nohup вместо экрана, выполнив nohup ./script.sh &
но когда я выхожу из сеанса ssh и возвращаюсь, это выглядит так, как будто скрипт перестал работать, когда я вышел из системы. Насколько я могу судить, nohup - верный способ сделать это.