[LINUX] Automatischer Start von Raspberry Pi-Programmen mit Systemd

Einführung

Der Inhalt dieses Artikels ist nur das Verfahren, das vorerst funktioniert hat.

Zielanwendung

https://qiita.com/takmot/items/987b493afeeada75925f Das UDP-Empfängerprogramm im obigen Artikel wurde in .NET Core erstellt und für Raspeye veröffentlicht.

Ich habe diese Anwendung auf / home / pi / work / udp / Publish / udp_receiver auf Raspai platziert. udp_receiver ist der Name der ausführbaren Datei.

SystemD Unit-Datei

Erstellen Sie eine System D Unit-Datei auf Ihrem PC. Der Dateiname sollte "udp_receiver.service" ("[Name der Ausführungsdatei] .service") sein. Der Inhalt ist wie folgt.

[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 ist optional, da es sich um einen Namen handelt. Geben Sie den Pfad des auszuführenden Programms in "ExecStart" an. Der Rest sollte in Ordnung sein.

Automatische Starteinstellung

Übertragen Sie die erstellte System D Unit-Datei per FTP auf Raspberry Pi. Der Speicherpfad für die SystemD Unit-Datei lautet "/ etc / systemd / system /". Gehen Sie zu sudo mv udp_receiver.service / etc / systemd / system / etc.

Führen Sie danach den folgenden Befehl aus. * Udp_receiver ist der Name der Ausführungsdatei.

  1. Laden Sie den Dienst neu
sudo systemctl daemon-reload
  1. Aktivieren Sie den automatischen Dienststart
sudo systemctl enable udp_receiver

Unten sind die Ausführungsergebnisse. image.png

    1. Dienst starten
sudo systemctl start udp_receiver

Vier. Überprüfen Sie den Betriebsstatus des Dienstes

sudo systemctl status udp_receiver

Das Folgende ist das Ausführungsergebnis von "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. September 16:33:39 raspberrypi systemd[1]: Started UdpRecv.
23. September 16:33:40 raspberrypi udp_receiver[1240]: Receive wait

Fünf. Starten Sie Raspberry Pi neu

sudo reboot
  1. Überprüfen Sie, ob der Prozess nach dem Neustart automatisch gestartet wird
sudo ps -x

Es begann wie folgt. image.png

Auch dieses Mal ist der UDP-Port 8888 geöffnet. Überprüfen Sie dies ebenfalls.

sudo lsof -i:8888

Unten sind die Ergebnisse. image.png

    1. Beenden Sie das Programm
sudo systemctl stop udp_receiver
  1. Deaktivieren Sie den Autostart
sudo systemctl disable udp_receiver

Probleme beim automatischen Starten von Web-Apps

Für die obige System D Unit-Datei Die Ausführungsposition des Programms ist "/".

Im Fall einer Webanwendung gibt es eine JS-Datei und eine CSS-Datei, die mit HTML verknüpft sind. Wenn Sie sie als relative Pfade angeben Da das Programm den relativen Pfad von "/" anzeigt, gibt es keine Datei und es tritt ein Fehler auf. Sie können hier in den Entwicklertools Ihres Browsers nach Fehlern suchen.

Ändern Sie die SystemD Unit-Datei wie folgt, um dieses Problem zu beheben:

[Unit]
Description=UdpRecv
After=network.target

[Service]
User=root
Type=simple
WorkingDirectory=/home/pi/work/udp/publish		#hinzufügen
ExecStart=/home/pi/work/udp/publish/udp_receiver

[Install]
WantedBy=multi-user.target

Referenzartikel

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

Recommended Posts

Automatischer Start von Raspberry Pi-Programmen mit Systemd
Innenüberwachung mit Raspberry Pi
Aufbau einer Cortex-M-Entwicklungsumgebung für TOPPERS mit Raspeye
USB über Ethernet mit Raspberry pi
Versuchen Sie es mit ArUco mit Raspberry Pi
Verwenden einer Webkamera mit Raspberry Pi
Automatischer Programmstart beim Start mit Raspberry Pi 3B + systemd Zusammenfassung
Automatische Erfassung von Aktienkursen mit Python
Erkennen Sie "Helligkeit" mit Python auf Raspberry Pi 3!
Verwenden Sie OpenJtalk, damit Raspberry Pi Japanisch spricht
Lassen Sie einen Servomotor mit Python auf Raspberry Pi 3 laufen
Ermitteln Sie die Temperatur mit Python auf Raspberry Pi 3!
Erkennen Sie Schiebeschalter mit Python auf Raspberry Pi 3!
Versuchen Sie, QR-Code mit Raspberry Pi zu verwenden
Erkennen Sie Magnetschalter mit Python auf Raspberry Pi 3!
Senden Sie Daten von Raspberry Pi mit AWS IOT
CSV-Ausgabe von Impulsdaten mit Raspberry Pi (CSV-Ausgabe)
Holen Sie sich CPU-Informationen von Raspberry Pi mit Python
Lassen Sie den Summer mit Python auf Raspberry Pi 3 erklingen!
Erstellen Sie ein Besuchermeldungssystem mit Raspberry Pi
Verbinden Sie Ihren Raspberry Pi mit Blynk mit Ihrem Smartphone
Messen Sie die CPU-Temperatur von Raspeye mit Python
Notieren Sie Temperatur und Luftfeuchtigkeit mit systemd auf Raspberry Pi
Erstellen Sie mithilfe von Poetry eine OpenCV4-Umgebung auf Raspberry Pi
Erstellen Sie einen Farbsensor mit einem Raspeltorte und einer Kamera
Verwendung des digitalen Beleuchtungsstärkesensors TSL2561 mit Raspberry Pi
Mit Akizuki Denshis 4WD Auto FT-MC-004 mit Raspberry Pi
Überwachen Sie die Temperatur mithilfe der Cloud-IoT-Plattform Raspberry Pi + Alibaba
Versuchen Sie es mit dem Temperatursensor (LM75B) mit Raspeye.
Nehmen Sie den Wert des SwitchBot-Thermo-Hygrometers mit Raspberry Pi
Umschalten der Bot-Thermo-Hygrometer-Werte mit Raspberry Pi
Implementierung von persönlich optimierten Fotorahmen mit Raspberry Pi
Steuern Sie das Ein- und Ausschalten des USB-Anschlusses des Raspberry Pi
Installation von Docker auf Raspberry Pi und L Chika
Ausgabe auf "7 Segment LED" mit Python mit Raspberry Pi 3!
Leistungsbewertung des automatischen Investment Trading Bot mittels Backtesting
Lassen Sie uns GPIO von Raspeye mit Python CGI betreiben
Ich habe versucht, die Pi Console I / F von Mechatraxs Raspeye IoT Starter Kit "anyPi" zu verwenden.
Spielen Sie, um Slack mithilfe von AWS PaaS über Raspberry Pi3 über Umgebungsdaten von SensorTag zu informieren