С тех пор как я начал запускать python-приложения и разные скрипты на удаленных машинах по SSH, столкнулся с проблемой, что при закрытии терминала убивается и запущенный процесс. Обходится этот момент разными способами. Кто-то пишет скрипты для запуска процессов с системой, но мне понравилась утилита screen, позволяющая работать с разными окнами терминала в рамках одной сессии, и которая не убивает процессы при его закрытии.
Утилита screen является предустановленной, поэтому для начала просто проверьте её версию:
screen --version
Если же утилита отсутствует, устанавливается она следующим образом:
apt install screen
Запускается утилита в терминале просто:
screen
Однако желательно запускать утилиту дав имя сессии. Это будет полезно, если вы планируете запускать несколько процессов параллельно. Иначе нужный процесс придется потом искать по сессиям с рандомными числовыми названиями. Запустить сессию с конкретным названием можно командой:
screen -S my_name
Находясь в окне сессии вы можете перейти в нужный каталог и запустить нужный python скрипт, например. После чего выйти из окна сессии введя: ctrl + a + d
Основные команды screen
Закрыть окно сессии | ctrl + a + d |
Список всех запущенных сессий | screen -ls |
Вернуться к нужной сессии | screen -r id |
создать дополнительное окно | ctrl+a + c |
показать список всех имеющихся окон | ctrl+a + « |
переключиться на окно с номером 0 (номер может быть иной) | ctrl+a + 0 |
переименовать текущее окно | ctrl+a + A |