[PYTHON] Automatischer Programmstart beim Start mit Raspberry Pi 3B + systemd Zusammenfassung

Starten Sie das Programm beim Start mit Raspberry Pi

Es ist unpraktisch, Raspberry Pi-Befehle einzeln zu öffnen und auszuführen, um Raspberry Pi-Programme auszuführen. Dieses Mal werde ich kurz zusammenfassen, wie ein Programm beim Start automatisch mit systemd gestartet wird.

Über systemd

systemd ist ein Mechanismus zum Starten von Linux und zum Verwalten des Systems. Dienste werden als Dateien in Einheiten verwaltet, die als Einheiten bezeichnet werden, anstatt als ein einzelnes Shell-Skript. Daher kann der Prozess einzeln unterteilt und ausgeführt werden. Da der Ablauf jedes Prozesses geklärt werden kann, ist außerdem eine Parallelverarbeitung möglich. Dieses Mal werden wir uns mit der Einstellungsmethode der Programmausführung beim Start befassen, sie kann jedoch auch am Ende oder mit einem Trigger wie einem Timer sowie beim Start ausgeführt werden.

Durchfluss einstellen

Es ist ein Ablauf der Einstellungen, aber im Grunde ist es möglich, eine Servicedatei zu erstellen und die Servicedatei verwendbar zu machen.

Erstellung von Servicedateien

Erstellen Sie die Servicedatei im Verzeichnis / etc / systemd / system /. Führen Sie daher den folgenden Befehl aus. Sie können einen beliebigen Namen für den Testteil von test.service verwenden.

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

Beschreiben Sie es wie folgt.

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] Definieren Sie die Einheit selbst. Die Beschreibung hat keinen Einfluss auf den Betrieb. Entscheiden Sie selbst.

[service] Hier wird der Startbefehl festgelegt. Wenn Sie Neustart und Typ festlegen, können Sie den Neustart auch festlegen, wenn der Dienst beendet wird. Sie können auch Ausführungsberechtigungen in Benutzer festlegen. Standardmäßig sucht systemd nicht nur mit sudo-Berechtigungen, sondern sucht nur nach Modulen, die den Berechtigungen entsprechen. Daher wird das Modul, das mit Benutzerrechten pip installiert wurde, als kein Modul eingestuft. Installieren Sie also entweder sudo pip oder ändern Sie die Berechtigungseinstellung der Servicedatei in pi.

ExecStart: Dienststartbefehl Typ: So ermitteln Sie, ob der Serviceprozess gestartet wurde. Der Standardwert ist "einfach". "Einfach": Beurteilt, dass der Dienst gestartet wurde, wenn der in ExecStart angegebene Befehl ausgeführt wird. Neustart: Neustartbedingung, wenn der Serviceprozess gestoppt wird (Standard ist "Nein") "Immer": Versuchen Sie immer einen Neustart Benutzer: Berechtigung zur Ausführung (Standard ist "root")

[install] Schreiben Sie diesen Abschnitt als Klischee. Ohne dies kann die nächste Operation nicht ausgeführt werden.

Service-Datei neu laden

Wenn die Servicedatei vollständig ist, laden Sie sie in den Daemon.

$ systemctl daemon-reload

Funktionsprüfung der Servicedatei

Die Servicedatei kann mit dem folgenden Befehl gestartet und gestoppt werden. Lassen Sie zum Zeitpunkt der Ausführung .sevice weg und geben Sie den von Ihnen festgelegten Namen der Servicedatei ein.

$systemctl Test starten
$systemctl stop test (stop)

Aktivieren Sie die Servicedatei

Verwenden Sie nach Bestätigung des Vorgangs den folgenden Befehl, um zu entscheiden, ob die Servicedatei beim Start aktiviert, deaktiviert oder deaktiviert werden soll.

$systemctl enable test (Startdämon)
$systemctl disable test (Stop Daemon)

Überprüfen Sie den Ausführungsstatus beim Start mit einem Befehl

Wenn es beim Start ausgeführt wird, fließt es nicht in den Befehl. Selbst wenn ein Fehler auftritt, kann er nicht bestätigt werden. Wenn Sie diesen Befehl nach dem Start ausführen, können Sie das Protokoll der Programmausführung beim Start überprüfen.

sudo LANG=C systemctl status -l test.service

Referenziert

Dieses Mal habe ich auf den folgenden Artikel verwiesen. 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/

abschließend

Jetzt kann Raspberry Pi beim Start automatisch ausgeführt werden. Wenn es automatisch ausgeführt werden kann, können Sie slackbot beim Start starten und von Ihrem Smartphone aus bedienen. Es scheint, dass Raspberry Pi praktischer gehandhabt werden kann.

Recommended Posts

Automatischer Programmstart beim Start mit Raspberry Pi 3B + systemd Zusammenfassung
Automatischer Start von Raspberry Pi-Programmen mit Systemd
GPS-Tracking mit Raspeye 4B + BU-353S4 (Python)
Notieren Sie Temperatur und Luftfeuchtigkeit mit systemd auf Raspberry Pi
Führen Sie die LED-Matrix interaktiv mit Raspberry Pi 3B + auf Slackbot aus
Einfaches IoT, um mit Raspeye und MESH zu beginnen
GPGPU mit Raspberry Pi
USB-Boot mit Raspberry Pi 4 Modell B (3) LVM Edition
DigitalSignage mit Raspberry Pi
Führen Sie den Python-Beispielcode BNO055 mit I2C (Raspberry Pi 3B) aus.
getrpimodel: Erkennen Sie das Himbeer-Pi-Modell (A, B, B +, B2, B3 usw.) mit Python
Mutter pflanzt mit Raspberry Pi
Himbeere pi 1 Modell b, Python
[Raspberry Pi] Schrittmotorsteuerung mit Raspberry Pi
Himbeer pi 1 Modell b, knotenroter Teil 17
Servomotorsteuerung mit Raspberry Pi
Skriptausführung beim Start mit ipython
Betriebssystem-Setup mit Raspberry Pi Imager
Probieren Sie L Chika mit Himbeerpi
Aufbau eines VPN-Servers mit Raspberry Pie
Versuchen Sie, 3 Servos mit Raspeye zu bewegen
Verwenden einer Webkamera mit Raspberry Pi