Запуск задач на удаленном сервере через SSH - жизненный цикл?
Два связанных вопроса:
Если я ssh на удаленный сервер и запускаю долгосрочную задачу на переднем плане (
:~$ ./my-task > out.log
), будет ли процесс продолжаться после завершения подключения к серверу?Выполнение той же длительной задачи из вопроса № 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
переключает сеансы.
Надеюсь, что это поможет в качестве стартера.