Страницы

Поиск по вопросам

суббота, 28 декабря 2019 г.

Как по SSH запустить .sh cкрипт, чтобы его исполнение не останавливалось при разрыве соединения?

#shell #ssh #bash #linux


Например, есть скрипт do.sh. Я подключаюсь к серверу по SSH и запускаю скрипт на
выполнение: 
~/do.sh

Проблема в том что если отключиться от сервера или произойдет разрыв соединения то
выполнение скрипта остановится. Как сделать так чтобы скрипт исполнялся дальше если
я отключась от сервера или происходит разрыв соединения?    


Ответы

Ответ 1



nohup do.sh & screen и в нем уже ./do.sh

Ответ 2



Думаю будет полезным утилита screen. В некоторых дистрибутивах линукс она предустановлена. Тем не менее, разобраться в документации и поставить небольшую утилиту не составит проблем. Она позволяет "разделять процессы на несколько окон" в одном терминале. При отключении от сервера "окна" screen сохранятся (процессы не завершатся), и в них можно будет вернуться при следующем подключении. Неплохой гайд для старта. Из минусов можно отметить то, что работа со скриптами как с демонами усложнится, но это все равно возможно.

Ответ 3



Вы можете запустить скрипт в фоновом режиме просто поставив в конце символ & Так же я использую более приятный аналог screen - tmux Например. Зашёл на сервер tmux В открывшейся консоли запускаю выполнение скрипта ./script.sh Далее жму последовательно ctrl+b d и отключаюсь от консоли tmux. При этом все открытые процессы и окна в нём продолжают выполняться. При повторном входе на сервер набираю tmux attach и попадаю в тот же сеанс и продолжаю работать Краткий курс работы с tmux

Комментариев нет:

Отправить комментарий