Как запустить скрипт Python в фоновом режиме даже после того, как я выхожу из системы SSH?

У меня есть сценарий Python bgservice.py и я хочу, чтобы это работало все время, потому что это - часть веб-сервиса, который я создаю. Как я могу заставить его работать непрерывно даже после того, как я выйду из системы SSH?

102
задан zihaoyu 4 June 2010 в 15:39
поделиться

5 ответов

Запустите nohup python bgservice.py & , чтобы сценарий игнорировал сигнал зависания и продолжал работу. Вывод будет помещен в nohup.out .

В идеале вы должны запускать свой скрипт с чем-то вроде supervise , чтобы его можно было перезапустить, если (когда) он умирает.

196
ответ дан 24 November 2019 в 04:28
поделиться

Вы также можете использовать экран GNU , который должен иметь почти каждая система Linux / Unix.

Если вы используете Ubuntu / Debian, его расширенный вариант byobu тоже неплох.

17
ответ дан 24 November 2019 в 04:28
поделиться

Вы можете изменить их, но я предпочитаю screen.

6
ответ дан 24 November 2019 в 04:28
поделиться

Оболочка zsh имеет возможность запускать все фоновые процессы с помощью nohup.

В ~ / .zshrc добавьте строки:

setopt nocheckjobs  #don't warn about bg processes on exit
setopt nohup        #don't kill bg processes on exit

Затем вам просто нужно запустить такой процесс: python bgservice.py & , и вам больше не нужно используйте команду nohup.

Я знаю, что не многие люди используют zsh, но это действительно классная оболочка, которую я бы порекомендовал.

3
ответ дан 24 November 2019 в 04:28
поделиться

Если вы уже запустили процесс и не хотите его убивать и перезапускать под nohup, вы можете отправить его в фоновый режим, а затем отказаться от него.

Ctrl + Z (приостановить процесс)

bg (перезапустить процесс в фоновом режиме

disown% 1 (при условии, что это задание №1, используйте задания для определения)

28
ответ дан 24 November 2019 в 04:28
поделиться
Другие вопросы по тегам:

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