Lancer le script Python en service

Presque [Obtenir un script Python à exécuter en arrière-plan (en tant que service) au démarrage](http://blog.scphillips.com/2013/07/getting-a-python-script-to-run-in-the -remains background-as-a-service-on-boot /).

Créer un script python

Par exemple, supposons que vous ayez démarré /usr/bin/local/test/test.py en tant que service.

Création d'un script de démon

Modèle

Créez le script suivant en tant que myservice.sh dans / 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

Modifier le script

Modifiez le contenu suivant en fonction de l'emplacement d'enregistrement du script python.

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

Par exemple, si vous souhaitez démoniser /usr/local/bin/test/test.py, modifiez-le comme suit.

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

Copier dans /etc/init.d

Après avoir modifié les autorisations, etc., copiez dans /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/

Modifier les autorisations des scripts Python

Modifiez également les autorisations pour le script python

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

Inscription au service

Vérification du fonctionnement du script démon

Vérifiez le fonctionnement avec la commande suivante

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

S'inscrire au service

Inscrivez-vous au service avec la commande suivante

sudo update-rc.d myservice.sh defaults

Vous pouvez vérifier si vous vous êtes inscrit au service avec la commande suivante

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

Recommended Posts

Lancer le script Python en service
Utilisez pymol comme bibliothèque python
Service Python
Utilisez Blender comme module Python
lancement de python
Ecrire un script batch avec Python3.5 ~
Installer Python en tant que Framework avec pyenv
Exécuter l'interpréteur Python dans le script
[Python] Trier les types de collection comme référence
Lancer une application Flask dans Python Anywhere
Python en tant que langage fortement typé dynamiquement
Utiliser Django à partir d'un script Python local
Comment exécuter des scripts Maya Python
Fichier python de script
squelette de script python
Profilage de script Python
Importer un script python
Lancez un simple service de recherche protégé par mot de passe en 5 minutes
python Remarque: Traitez les listes collectivement comme un ensemble
"Kit Python" qui appelle des scripts Python depuis Swift
Lancer un serveur Web avec Python et Flask
Appel de scripts Python à partir de Python intégré en C ++ / C ++
Exécutez des scripts Python à partir d'Excel (en utilisant xlwings)
Comment gérer les arguments lors de l'implémentation d'un script Python en tant qu'outil de ligne de commande
Algorithme A * (édition Python)
Un script python qui importe un fichier csv daté dans BigQuery en tant que table de partition de temps
[Python] Prenez une capture d'écran
(Python) Traite les valeurs entières comme un ensemble d'indicateurs
Spécifiez une sous-commande comme argument de ligne de commande en Python
expression lambda de python ...
Un mémorandum pour exécuter un script python dans un fichier bat
Démoniser un processus Python
Lancer une application Web Python sur Nginx + Gunicorn avec Docker
Que contient cette variable (lorsque le script Python est en cours d'exécution)
Mémo de script DynamoDB (Python)
Créer un environnement Python
Script Python qui crée un fichier JSON à partir d'un fichier CSV
Python3> rond (a --b, 7)
[Piyopiyokai # 1] Jouons avec Lambda: création d'un script Python
J'ai remplacé le livre de recettes Windows PowerShell par un script python.
Affichez des images DICOM avec Python rudimentaire en tant que professionnel de la santé
Un script Python qui enregistre une image de presse-papiers (GTK) dans un fichier.
Comment exécuter un programme Python à partir d'un script shell
[Python, script shell, développement d'équipe] Créez un dépôt Git astucieux
Comment lancer AWS Batch à partir de l'application cliente Python
Créons un script qui s'enregistre avec Ideone.com en Python.
Création d'un script Python prenant en charge l'API e-Stat (ver.2)
Faisons un service de vente au comptant 4 (en Python mini Hack-a-thon)
Créer un script Python pour Wake on LAN (Wake on LAN over NAT [5])
[Python] Utiliser les données au format JSON comme objet de type dictionnaire
Un ensemble de fichiers de script qui font wordcloud avec Python3
Un script python qui convertit les données Oracle Database en csv
Script Python qui compare le contenu de deux répertoires
AtCoder ABC 177 Python (A ~ E)
Prendre une capture d'écran en Python
Créer un plugin Wox (Python)
Créer une fonction en Python
Créer un dictionnaire en Python
AtCoder ABC 178 Python (A ~ E)
Une route vers Python intermédiaire