[LINUX] Lancement automatique des programmes Raspberry Pi à l'aide de Systemd

introduction

Le contenu de cet article n'est que la procédure qui a fonctionné pour le moment.

Application cible

https://qiita.com/takmot/items/987b493afeeada75925f Le programme récepteur UDP dans l'article ci-dessus a été créé dans .NET Core et publié pour Raspeye.

J'ai placé cette application sur / home / pi / work / udp / publish / udp_receiver sur Raspeye. ʻUdp_receiver` est le nom du fichier exécutable.

Fichier d'unité SystemD

Créez un fichier System D Unit sur votre PC. Le nom du fichier doit être ʻudp_receiver.service ([nom du fichier d'exécution] .service`). Le contenu est le suivant.

[Unit]
Description=UdpRecv
After=network.target

[Service]
User=root
Type=simple
ExecStart=/home/pi/work/udp/publish/udp_receiver

[Install]
WantedBy=multi-user.target

«Description» est facultatif car il s'agit d'un nom. ʻExecStart` spécifie le chemin du programme à exécuter. Le reste devrait être bien.

Réglage de démarrage automatique

Transférez le fichier System D Unit créé vers Raspberry Pi par FTP. Le chemin de stockage du fichier de l'unité SystemD sera / etc / systemd / system /. Allez dans sudo mv udp_receiver.service / etc / systemd / system / etc.

Après cela, exécutez la commande suivante. * ʻUdp_receiver` est le nom du fichier d'exécution.

  1. Rechargez le service
sudo systemctl daemon-reload
  1. Activer le démarrage automatique du service
sudo systemctl enable udp_receiver

Voici les résultats de l'exécution. image.png

    1. Démarrer le service
sudo systemctl start udp_receiver

Quatre. Vérifier l'état de fonctionnement du service

sudo systemctl status udp_receiver

Voici le résultat de l'exécution de sudo systemctl status udp_receiver.

● udp_receiver.service - UdpRecv
   Loaded: loaded (/etc/systemd/system/udp_receiver.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2020-09-23 16:33:39 JST; 5s ago
 Main PID: 1240 (udp_receiver)
    Tasks: 8 (limit: 4915)
   Memory: 5.1M
   CGroup: /system.slice/udp_receiver.service
           mq1240 /home/pi/work/udp/publish/udp_receiver

23 septembre 16:33:39 raspberrypi systemd[1]: Started UdpRecv.
23 septembre 16:33:40 raspberrypi udp_receiver[1240]: Receive wait

Cinq. Redémarrez Raspberry Pi

sudo reboot
  1. Vérifiez si le processus démarre automatiquement après le redémarrage
sudo ps -x

Tout a commencé comme suit. image.png

De plus, cette fois, le port UDP 8888 est ouvert, alors vérifiez-le également.

sudo lsof -i:8888

Voici les résultats. image.png

    1. Arrêtez le programme
sudo systemctl stop udp_receiver
  1. Désactiver le démarrage automatique
sudo systemctl disable udp_receiver

Problèmes avec le lancement automatique des applications Web

Pour le fichier de l'unité System D ci-dessus La position d'exécution du programme est "/".

Dans le cas d'une application Web, il existe un fichier js et un fichier css lié au html, Si vous les spécifiez comme chemins relatifs Puisque le programme va voir le chemin relatif de "/", il n'y a pas de fichier et une erreur se produit. Vous pouvez vérifier les erreurs ici dans les outils de développement de votre navigateur.

Pour résoudre ce problème, modifiez le fichier de l'unité SystemD comme suit:

[Unit]
Description=UdpRecv
After=network.target

[Service]
User=root
Type=simple
WorkingDirectory=/home/pi/work/udp/publish		#ajouter à
ExecStart=/home/pi/work/udp/publish/udp_receiver

[Install]
WantedBy=multi-user.target

Article de référence

https://qiita.com/KEINOS/items/f3e6b3064b0cbe35fd03 https://tomosoft.jp/design/?p=11697

Recommended Posts

Lancement automatique des programmes Raspberry Pi à l'aide de Systemd
Surveillance intérieure à l'aide de Raspberry Pi
Construction d'un environnement de développement Cortex-M pour TOPPERS utilisant Raspeye
USB sur Ethernet avec Raspberry pi
Essayez d'utiliser ArUco avec Raspberry Pi
Utiliser une webcam avec Raspberry Pi
Démarrage automatique du programme au démarrage avec Raspberry Pi 3B + systemd Résumé
Collecte automatique des cours boursiers à l'aide de python
Détectez la "luminosité" en utilisant python sur Raspberry Pi 3!
Faire en sorte que Raspberry Pi parle japonais en utilisant OpenJtalk
Exécutez un servomoteur en utilisant python sur Raspberry Pi 3
Détectez la température à l'aide de python sur Raspberry Pi 3!
Détectez les interrupteurs à glissière à l'aide de python sur Raspberry Pi 3!
Essayez d'utiliser le code QR avec Raspberry Pi
Détectez les commutateurs magnétiques à l'aide de python sur Raspberry Pi 3!
Envoyer des données depuis Raspberry Pi à l'aide d'AWS IOT
Sortie CSV des données d'impulsion avec Raspberry Pi (sortie CSV)
Obtenez des informations sur le processeur de Raspberry Pi avec Python
Sonnez le buzzer en utilisant python sur Raspberry Pi 3!
Créer un système de notification des visiteurs à l'aide de Raspberry Pi
Connectez votre Raspberry Pi à votre smartphone en utilisant Blynk
Mesurer la température du processeur de Raspeye avec Python
Enregistrez la température et l'humidité avec systemd sur Raspberry Pi
Créer un environnement OpenCV4 sur Raspberry Pi à l'aide de Poetry
Créez un capteur de couleur à l'aide d'une tarte à la râpe et d'une caméra
Utilisez le capteur d'éclairement numérique TSL2561 avec Raspberry Pi
Utilisation de la voiture 4RM FT-MC-004 d'Akizuki Denshi avec Raspberry Pi
Surveiller la température à l'aide de la plate-forme IoT cloud Raspberry Pi + Alibaba
Essayez d'utiliser le capteur de température (LM75B) avec Raspeye.
Prenez la valeur du thermo-hygromètre SwitchBot avec Raspberry Pi
Changer les valeurs du thermo-hygromètre Bot avec Raspberry Pi
Mettre en œuvre des cadres photo optimisés personnellement avec Raspberry Pi
Contrôler la mise sous / hors tension du port USB du Raspberry Pi
Installation de Docker sur Raspberry Pi et L Chika
Sortie sur "LED 7 segments" en utilisant python avec Raspberry Pi 3!
Évaluation des performances du bot de trading d'investissement automatique à l'aide du backtesting
Exploitons GPIO de Raspeye avec Python CGI
J'ai essayé d'utiliser la console Pi I / F du kit de démarrage Raspeye IoT de Mechatrax "anyPi"
Jouez pour informer Slack des données environnementales de SensorTag à l'aide d'AWS PaaS via Raspberry Pi3