[PYTHON] Démarrage automatique du programme au démarrage avec Raspberry Pi 3B + systemd Résumé

Démarrer le programme au démarrage avec Raspberry Pi

Il n'est pas pratique d'ouvrir et d'exécuter les commandes Raspberry Pi une par une pour exécuter les programmes Raspberry Pi. Cette fois, je résumerai brièvement comment démarrer automatiquement un programme en utilisant systemd au démarrage.

À propos de systemd

systemd est un mécanisme pour démarrer Linux et gérer le système. Les services sont gérés sous forme de fichiers dans des unités appelées Unités au lieu d'un seul script shell. Par conséquent, le processus peut être subdivisé et exécuté individuellement. De plus, étant donné que le déroulement de chaque processus peut être clarifié, un traitement parallèle est également possible. Cette fois, nous traiterons de la méthode de paramétrage de l'exécution du programme au démarrage, mais elle peut être exécutée non seulement au démarrage mais aussi à la fin ou avec un déclencheur tel qu'un timer.

Flux de réglage

Il s'agit d'un flux de paramètres, mais il est fondamentalement possible en créant un fichier de service et en rendant le fichier de service utilisable.

création de fichier de service

Créez le fichier de service dans le répertoire / etc / systemd / system /. Par conséquent, exécutez la commande suivante. Vous pouvez utiliser n'importe quel nom pour la partie test de test.service.

$ sudo nano /etc/systemd/system/test.service

Décrivez-le comme suit.

test.service


[Unit]
Description = do test

[Service]
ExecStart=/home/pi/systemd/test.sh
Restart=always
Type=simple
User=pi

[Install]
WantedBy=multi-user.target

[unit] Définissez l'unité elle-même. La description n'affecte pas l'opération, alors décidez vous-même.

[service] C'est là que la commande de démarrage est déterminée. Si vous définissez avec Redémarrer et Type, vous pouvez également définir le redémarrage lorsque le service s'arrête. Vous pouvez également définir des autorisations d'exécution dans User. Par défaut, en plus de fonctionner avec les privilèges sudo, systemd recherche uniquement les modules en fonction des privilèges. Par conséquent, le module qui a été installé pip avec les privilèges utilisateur sera considéré comme aucun module, donc sudo pip install ou modifiez le paramètre d'autorisation du fichier de service en pi.

ExecStart: commande de démarrage du service Type: comment déterminer si le processus de service a démarré. La valeur par défaut est "simple". "Simple": juge que le service a démarré lorsque la commande spécifiée dans ExecStart est exécutée. Redémarrer: condition de redémarrage lorsque le processus de service est arrêté (la valeur par défaut est «non») "Toujours": essayez toujours de redémarrer Utilisateur: autorisation d'exécution (la valeur par défaut est "root")

[install] Écrivez cette section comme un cliché. Sans cela, l'opération suivante ne peut pas être effectuée.

Recharger le fichier de service

Lorsque le fichier de service est complet, chargez-le dans le démon.

$ systemctl daemon-reload

Vérification du fonctionnement du fichier de service

Le fichier de service peut être démarré et arrêté avec la commande suivante. Au moment de l'exécution, omettez .sevice et entrez le nom du fichier de service que vous avez défini.

$test de démarrage de systemctl
$test d'arrêt systemctl (arrêt)

Activer le fichier de service

Après avoir confirmé l'opération, utilisez la commande suivante pour décider d'activer, de désactiver ou de désactiver le fichier de service au démarrage.

$test d'activation de systemctl (démarrage du démon)
$test de désactivation de systemctl (démon d'arrêt)

Vérifiez l'état d'exécution au démarrage avec une commande

S'il est exécuté au démarrage, il ne passera pas sur la commande, donc même si une erreur se produit, elle ne peut pas être confirmée. Si vous exécutez cette commande après le démarrage, vous pouvez vérifier le journal d'exécution du programme au démarrage.

sudo LANG=C systemctl status -l test.service

Référencé

Cette fois, je me suis référé à l'article suivant. https://qiita.com/sinsengumi/items/24d726ec6c761fc75cc9 https://qiita.com/molchiro/items/ee32a11b81fa1dc2fd8d https://tomosoft.jp/design/?p=11697 https://qiita.com/marumen/items/e4c75a2617cb5d0113ce https://www.souichi.club/technology/systemd/

en conclusion

Désormais, Raspberry Pi peut être exécuté automatiquement au démarrage. S'il peut être exécuté automatiquement, vous pouvez démarrer slackbot au démarrage et le faire fonctionner depuis votre smartphone. Il semble que Raspberry Pi puisse être géré de manière plus pratique.

Recommended Posts

Démarrage automatique du programme au démarrage avec Raspberry Pi 3B + systemd Résumé
Lancement automatique des programmes Raspberry Pi à l'aide de Systemd
Suivi GPS avec Raspeye 4B + BU-353S4 (Python)
Enregistrez la température et l'humidité avec systemd sur Raspberry Pi
Exécutez la matrice LED de manière interactive avec Raspberry Pi 3B + sur Slackbot
IoT facile pour démarrer avec Raspeye et MESH
GPGPU avec Raspberry Pi
Démarrage USB avec Raspberry Pi 4 modèle B (3) édition LVM
DigitalSignage avec Raspberry Pi
Exécutez l'exemple de code python BNO055 avec I2C (Raspberry Pi 3B)
getrpimodel: Reconnaître le modèle Raspberry Pi (A, B, B +, B2, B3, etc.) avec python
Plantes Mutter avec Raspberry Pi
raspberry pi 1 modèle b, python
[Raspberry Pi] Contrôle du moteur pas à pas avec Raspberry Pi
Raspberry pi 1 modèle b, partie rouge noeud 17
Commande de servomoteur avec Raspberry Pi
Exécution du script au démarrage avec ipython
Configuration du système d'exploitation avec Raspberry Pi Imager
Essayez L Chika avec raspberrypi
Construire un serveur VPN avec Raspberry Pie
Essayez de déplacer 3 servos avec Raspeye
Utiliser une webcam avec Raspberry Pi