Starten Sie das Python-Skript im Dienst

Fast [Ein Python-Skript wird beim Booten im Hintergrund (als Dienst) ausgeführt](http://blog.scphillips.com/2013/07/getting-a-python-script-to-run-in-the -bleibt Hintergrund als Service beim Booten /).

Erstellen eines Python-Skripts

Angenommen, Sie haben /usr/bin/local/test/test.py als Dienst gestartet.

Erstellen eines Daemon-Skripts

Modell

Erstellen Sie das folgende Skript als myservice.sh in / usr / local / bin / test.

myservice.sh


#!/bin/sh

### BEGIN INIT INFO
# Provides:          myservice
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Put a short description of the service here
# Description:       Put a long description of the service here
### END INIT INFO

# Change the next 3 lines to suit where you install your script and what you want to call it
DIR=/usr/local/bin/myservice
DAEMON=$DIR/myservice.py
DAEMON_NAME=myservice

# Add any command line options for your daemon here
DAEMON_OPTS=""

# This next line determines what user the script runs as.
# Root generally not recommended but necessary if you are using the Raspberry Pi GPIO from Python.
DAEMON_USER=root

# The process ID of the script when it runs is stored here:
PIDFILE=/var/run/$DAEMON_NAME.pid

. /lib/lsb/init-functions

do_start () {
    log_daemon_msg "Starting system $DAEMON_NAME daemon"
    start-stop-daemon --start --background --pidfile $PIDFILE --make-pidfile --user $DAEMON_USER --chuid $DAEMON_USER --startas $DAEMON -- $DAEMON_OPTS
    log_end_msg $?
}
do_stop () {
    log_daemon_msg "Stopping system $DAEMON_NAME daemon"
    start-stop-daemon --stop --pidfile $PIDFILE --retry 10
    log_end_msg $?
}

case "$1" in

    start|stop)
        do_${1}
        ;;

    restart|reload|force-reload)
        do_stop
        do_start
        ;;

    status)
        status_of_proc "$DAEMON_NAME" "$DAEMON" && exit 0 || exit $?
        ;;
    *)
        echo "Usage: /etc/init.d/$DAEMON_NAME {start|stop|restart|status}"
        exit 1
        ;;

esac
exit 0

Skript bearbeiten

Bearbeiten Sie den folgenden Inhalt entsprechend dem Speicherort des Python-Skripts.

DIR=/usr/local/bin/myservice
DAEMON=$DIR/myservice.py
DAEMON_NAME=myservice

Wenn Sie beispielsweise /usr/local/bin/test/test.py dämonisieren möchten, bearbeiten Sie es wie folgt.

DIR=/usr/local/bin/test
DAEMON=$DIR/test.py
DAEMON_NAME=test

Kopieren Sie nach /etc/init.d

Kopieren Sie nach dem Ändern der Berechtigungen usw. nach /etc/init.d

cd /usr/local/bin/test
sudo chown root.root myservice.sh
sudo chmod 755 myservice.sh
sudo cp myservice.sh /etc/init.d/

Ändern Sie die Berechtigungen für Python-Skripte

Ändern Sie auch die Berechtigungen für das Python-Skript

cd /usr/local/bin/test
sudo chmod 755 test.py

Registrierung zum Service

Überprüfen der Funktion des Daemon-Skripts

Überprüfen Sie den Vorgang mit dem folgenden Befehl

sudo /etc/init.d/myservice.sh start
sudo /etc/init.d/myservice.sh status
sudo /etc/init.d/myservice.sh stop

Registrieren Sie sich für den Service

Registrieren Sie sich mit dem folgenden Befehl beim Dienst

sudo update-rc.d myservice.sh defaults

Mit dem folgenden Befehl können Sie überprüfen, ob Sie sich für den Dienst registriert haben

ls -l /etc/rc?.d/*myservice.sh

Recommended Posts

Starten Sie das Python-Skript im Dienst
Verwenden Sie Pymol als Python-Bibliothek
Python-Dienst
Verwenden Sie Blender als Python-Modul
Python-Start
Schreiben Sie ein Batch-Skript mit Python3.5 ~
Installieren Sie Python als Framework mit pyenv
Führen Sie den Python-Interpreter im Skript aus
[Python] Sortieren Sie Sammlungstypen als Referenz
Starten Sie eine Flask-App in Python Anywhere
Python als stark dynamisch typisierte Sprache
Verwenden Sie Django aus einem lokalen Python-Skript
So führen Sie Maya Python-Skripte aus
Skript-Python-Datei
Python-Skript-Skelett
Python-Skript-Profilerstellung
Importieren Sie ein Python-Skript
Starten Sie in 5 Minuten einen einfachen passwortgeschützten Suchdienst
Python Hinweis: Behandeln Sie Listen gemeinsam als Satz
"Python Kit", das Python-Skripte von Swift aufruft
Starten Sie einen Webserver mit Python und Flask
Rufen Sie Python-Skripte aus Embedded Python in C ++ / C ++ auf
Führen Sie Python-Skripte in Excel aus (mit xlwings).
Verwalten von Argumenten beim Implementieren eines Python-Skripts als Befehlszeilentool
Ein * Algorithmus (Python Edition)
Ein Python-Skript, das eine datierte CSV-Datei als Zeitpartitionstabelle in BigQuery importiert
[Python] Machen Sie einen Screenshot
(Python) Behandeln Sie ganzzahlige Werte als eine Reihe von Flags
Geben Sie in Python einen Unterbefehl als Befehlszeilenargument an
Pythons Lambda-Ausdruck ...
Ein Memorandum zum Ausführen eines Python-Skripts in einer Bat-Datei
Dämonisiere einen Python-Prozess
Starten Sie mit Docker eine Python-Webanwendung auf Nginx + Gunicorn
Was ist in dieser Variablen (wenn das Python-Skript ausgeführt wird)?
DynamoDB Script Memo (Python)
Erstellen Sie eine Python-Umgebung
Python-Skript, das eine JSON-Datei aus einer CSV-Datei erstellt
Python3> rund (a - b, 7)
[Piyopiyokai # 1] Spielen wir mit Lambda: Erstellen eines Python-Skripts
Ich habe das Windows PowerShell-Kochbuch durch ein Python-Skript ersetzt.
Zeigen Sie DICOM-Bilder mit rudimentärem Python als Mediziner an
Ein Python-Skript, das ein GTK-Bild (Clipboard) in einer Datei speichert.
So führen Sie ein Python-Programm in einem Shell-Skript aus
[Python, Shell-Skript, Teamentwicklung] Erstellen Sie ein geschicktes Git-Repository
So starten Sie AWS Batch über die Python-Client-App
Erstellen wir ein Skript, das sich bei Ideone.com in Python registriert.
Erstellen eines Python-Skripts, das die e-Stat-API unterstützt (Version 2)
Machen wir einen Spot Sale Service 4 (in Python Mini Hack-a-thon)
Erstellen Sie ein Python-Skript für Wake on LAN (Wake on LAN über NAT [5])
[Python] Verwenden Sie Daten im JSON-Format als Objekt vom Typ Wörterbuch
Eine Reihe von Skriptdateien, die Wordcloud mit Python3 ausführen
Ein Python-Skript, das Oracle-Datenbankdaten in CSV konvertiert
Python-Skript, das den Inhalt zweier Verzeichnisse vergleicht
AtCoder ABC 177 Python (A ~ E)
Machen Sie einen Screenshot in Python
Erstellen Sie ein Wox-Plugin (Python)
Erstellen Sie eine Funktion in Python
Erstellen Sie ein Wörterbuch in Python
AtCoder ABC 178 Python (A ~ E)
Ein Weg zum mittleren Python