У меня есть сценарий Python bgservice.py
и я хочу, чтобы это работало все время, потому что это - часть веб-сервиса, который я создаю. Как я могу заставить его работать непрерывно даже после того, как я выйду из системы SSH?
Запустите nohup python bgservice.py &
, чтобы сценарий игнорировал сигнал зависания и продолжал работу. Вывод будет помещен в nohup.out
.
В идеале вы должны запускать свой скрипт с чем-то вроде supervise
, чтобы его можно было перезапустить, если (когда) он умирает.
Вы также можете использовать экран GNU , который должен иметь почти каждая система Linux / Unix.
Если вы используете Ubuntu / Debian, его расширенный вариант byobu тоже неплох.
Оболочка 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, но это действительно классная оболочка, которую я бы порекомендовал.
Если вы уже запустили процесс и не хотите его убивать и перезапускать под nohup, вы можете отправить его в фоновый режим, а затем отказаться от него.
Ctrl + Z
(приостановить процесс)
bg
(перезапустить процесс в фоновом режиме
disown% 1
(при условии, что это задание №1, используйте задания
для определения)