Hintergrund
Ich schreibe ein einfaches Skript, das in Raspbain auf Raspberry Pi 2 ausgeführt werden soll. Schalten Sie einfach eine LED ein, um anzuzeigen, dass ich bereit bin, von meinem Desktop-Computer aus eine Verbindung mit SSH herzustellen.
Das Skript ist hier nicht wichtig, nur um zu erwähnen, dass das Skript eine Endlosschleife ausführt, um die LED häufig ein- und auszuschalten, da ich die Frequenzsteuerung verwende. Dies ist also ein Beispiel für einen einfachen Service. Zumindest die akzeptierte Antwort auf diese Frage rät mir jedoch, den Typ auf Leerlauf zu setzen. Meine Servicedatei sieht also so aus
[Unit]
Description=Turn on LED after SSH is ready
[Service]
Type=idle
ExecStart=/usr/bin/sshready.py
[Install]
Wants=network-online.target
After=network-online.target
Bewirken
Der Dienst wird wie erwartet ausgeführt. Ich habe jedoch festgestellt, dass beim Starten von Putty auf meinem Desktop-Computer direkt nach dem Einschalten der LED die Anmeldeaufforderung nicht sofort angezeigt wird. Also habe ich nachgefragt
$ systemd-analyze plot > output.svg
Das Ergebnis zeigt
Frage
Es sieht so aus, als ob meine Dienste nicht danach starten network-online.target
. Was ist hier falsch und wie kann ich das beheben?
Lassen Sie es beheben, indem Sie den Dienst als ändern
Ich habe immer noch nicht ganz verstanden, was ich tat, aber es funktioniert jetzt. Kann jemand bitte erklären?
Aktualisieren
Diese Antwort wurde von mir selbst erstellt, bevor die akzeptierte Antwort kommt.
quelle
After=
Richtlinie in der[Unit]
Sektion sein muss. Es ist nur so dass.