Я бегом Джанго веб-сервер с файлом manage.py по умолчанию, как я могу демон его с помощью SVC daemontoolsКак запустить сервер с Джанго DaemonTools
Содержимое моего файла запуска в DaemonTools является
#!/bin/bash
exec setuidgid <myuser> /usr/bin/python <path/to/manage.py> runserver 2>&1
Содержание manage.py
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE","settings")
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
Дочерний процесс (manage.py runserver) из svscanboot вилка другого процесса в execute_from_command_line (импортировано из django.c ore.management), которую нельзя контролировать с помощью команд svc. Ниже приведено дерево процессов для svscanboot.
/bin/sh /usr/bin/svscanboot
\_ svscan /etc/service
\_ supervise myapp
\_ /usr/bin/python </path/to/manage.py> runserver
\_ /usr/bin/python </path/to/manage.py> runserver
Теперь, если я выполнить SVC -d он посылает сигнал TERM к первому процессу runserver, и в результате просто убивает, а второй процесс становится процессом сиротского, который не может управляться с помощью SVC команд.
Как я могу управлять всем деревом процессов дочернего процесса с помощью daemontools?
Почему вы хотите это сделать? Сервер не предназначен для производства, вы не должны пытаться запускать его автоматически. –