@unknowndeal

Как правильно запустить скрипт на VPS?

Добрый вечер, есть впс сервер с убунту 20.04 на нем. На сервере крутятся два пайтон скрипта 24/7. Но работают они только тогда, когда я в ssh сессии с впс(ssh клиент - мобахтерм). Как только я выхожу с сервера скрипты перестают работать.
То есть, я захожу на сервер, запускаю скрипты и пока я не вышел с сервера - скрипты работают.
Примечания:
  • скрипты кладу в bg %
  • скрипты логируют о своем запуске/завершении, и я точно знаю в какой момент они вылетают


UPD: немного про скрипт. Делает кучу запросов через curl и requests, парсит csv, логгирует, сохраняет данные в бд, рассылает письма на почты и в телеграмы. Может это имеет какое-то значение.
  • Вопрос задан
  • 1360 просмотров
Решения вопроса 2
@q2digger
никого не трогаю, починяю примус
самый простой способ запустить с помощью nohup (nohup /there/is/path/to/your/script &)
правильный способ - настроить сервисы для запуска и контроля своих скриптов. https://habr.com/ru/company/southbridge/blog/255845/
Ответ написан
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
Если ты запускаешь процесс в бэкграунд, для него твой шелл все равно остается родительским процессом, а при убитии родительского процесса, всем дочерним отправляется сигнал sighup, что вынуждает их завершить работу.
Поэтому отправить в бэкграунд - недостаточно, нужно еще "отвязать" от родительского процесса.

Это можно сделать через команду nohup или disown.

Второй вариант - использовать менеджер экрана типа screen/tmux, который берет на себя заботу о сохранении "родительского" процесса невредимым при отключении.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
martin74ua
@martin74ua Куратор тега Linux
Linux administrator
man screen
man tmux
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы