С тех пор как я начал запускать 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 |