Ich verwende diesen Code, um meine Anwendungen zu dämonisieren. Es erlaubt Ihnen start/stop/restart das Skript mit den folgenden Befehlen.
python myscript.py start
python myscript.py stop
python myscript.py restart
 Darüber hinaus habe ich auch ein init.d-Skript zur Steuerung meines Dienstes. Dadurch können Sie den Dienst automatisch starten, wenn Ihr Betriebssystem hochfährt.
 Hier ist ein einfaches Beispiel, um loszulegen. Verschieben Sie einfach Ihren Code in eine Klasse und rufen Sie ihn über run auf Funktion in MyDeamon .
import sys
import time
from daemon import Daemon
class YourCode(object):
    def run(self):
        while True:
            time.sleep(1)
class MyDaemon(Daemon):
    def run(self):
        # Or simply merge your code with MyDaemon.
        your_code = YourCode()
        your_code.run()
if __name__ == "__main__":
    daemon = MyDaemon('/tmp/daemon-example.pid')
    if len(sys.argv) == 2:
        if 'start' == sys.argv[1]:
            daemon.start()
        elif 'stop' == sys.argv[1]:
            daemon.stop()
        elif 'restart' == sys.argv[1]:
            daemon.restart()
        else:
            print "Unknown command"
            sys.exit(2)
        sys.exit(0)
    else:
        print "usage: %s start|stop|restart" % sys.argv[0]
        sys.exit(2)
 Neuling
 Wenn Sie ein Betriebssystem ausführen, das Upstart verwendet (z. B. CentOS 6), können Sie den Dienst auch mit Upstart verwalten. Wenn Sie Upstart verwenden, können Sie Ihr Skript unverändert lassen und einfach so etwas unter /etc/init/my-service.conf hinzufügen 
start on started sshd
stop on runlevel [!2345]
exec /usr/bin/python /opt/my_service.py
respawn
 Sie können dann start/stop/restart verwenden, um Ihren Dienst zu verwalten.
z. B.
start my-service
stop my-service
restart my-service
 Ein ausführlicheres Beispiel für die Arbeit mit Upstart finden Sie hier.
Systemd
Wenn Sie ein Betriebssystem verwenden, das Systemd verwendet (z. B. CentOS 7), können Sie sich die folgende Stackoverflow-Antwort ansehen.
Ich gebe zwei Empfehlungen:
Betreuer
 1) Installieren Sie supervisor Paket (ausführlichere Anweisungen hier):
sudo apt-get install supervisor
 
 2) Erstellen Sie eine Konfigurationsdatei für Ihren Daemon unter /etc/supervisor/conf.d/flashpolicyd.conf :
[program:flashpolicyd]
directory=/path/to/project/root
environment=ENV_VARIABLE=example,OTHER_ENV_VARIABLE=example2
command=python flashpolicyd.py
autostart=true
autorestart=true
 
 3) Starten Sie supervisor neu um Ihren neuen .conf zu laden 
supervisorctl update
supervisorctl restart flashpolicyd
 systemd (falls derzeit von Ihrer Linux-Distribution verwendet)
[Unit]
Description=My Python daemon
[Service]
Type=simple
ExecStart=/usr/bin/python3 /opt/project/main.py
WorkingDirectory=/opt/project/
Environment=API_KEY=123456789
Environment=API_PASS=password
Restart=always
RestartSec=2
[Install]
WantedBy=sysinit.target
 
 Platzieren Sie diese Datei in /etc/systemd/system/my_daemon.service und aktivieren Sie es mit systemctl daemon-reload && systemctl enable my_daemon && systemctl start my_daemon --no-block .
So zeigen Sie Protokolle an:
 systemctl status my_daemon