Запуск задач на удаленном сервере через SSH - жизненный цикл?

Два связанных вопроса:

  1. Если я ssh на удаленный сервер и запускаю долгосрочную задачу на переднем плане (:~$ ./my-task > out.log), будет ли процесс продолжаться после завершения подключения к серверу?

  2. Выполнение той же длительной задачи из вопроса № 1 занимает около 5 минут. Если я открою другое окно терминала и поиграюсь с файлом, куда отправляется вывод (tail -f out.log | grep 'Loop count') может ли это повлиять на количество времени, которое потребуется my-task заканчивать?

1 ответ

Решение

Когда вы прервете соединение с вашим сервером, задача закончится. я использую Tmux для такого рода вещей.

Вы можете установить его обычным способом.

sudo apt-get install tmux

Идея это ты ssh на ваш сервер, затем с вашей оболочки запуска tmux и подключен к виртуальной консоли tmux. Начните свои вещи изнутри tmux виртуальную консоль, отсоединитесь от нее и затем прекратите соединение с сервером.

tmux виртуальная консоль будет работать, как и все ваши вещи в этой консоли. Вы можете подключиться к вашему серверу и присоединиться к / от tmux Консоли по желанию.

В Tmux есть приличная справочная страница, но вот несколько ключей, которые помогут вам в этом.

tmux ls список запущенных сеансов tmux.

tmux attach -t 0 прикрепить к 0.

ctrl-B c создать терминал.

crtl-B d отсоединить терминан.

ctrl-B " разделить терминал по вертикали.

ctrl-B % разделить терминал по горизонтали.

arrows перемещаться по панелям

0-9 выбирает окна.

s переключает сеансы.

Надеюсь, что это поможет в качестве стартера.

Другие вопросы по тегам