ubuntuusers.de

mit bash python Script starten

Status: Gelöst | Ubuntu-Version: Xubuntu 18.04 (Bionic Beaver)
Antworten |

matze31

(Themenstarter)

Anmeldungsdatum:
25. Oktober 2015

Beiträge: 791

pi@raspberrypi:~ $ systemctl status cam.service
● cam.service - kamera
   Loaded: loaded (/etc/systemd/system/cam.service; enabled; vendor preset: enabled)
   Active: inactive (dead)

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11265

Wohnort: München

Und was passiert, wenn du die beiden Befehle absetzt (falls er das Symlinks ändert, würde mich die Ausgabe davon interessieren) und dann einen Reboot machst?

systemctl disable cam.service
systemctl enable cam.service
reboot
# nach dem reboot
systemctl status cam.service
journalctl -u cam.service -b -l 

matze31

(Themenstarter)

Anmeldungsdatum:
25. Oktober 2015

Beiträge: 791

Ich habe jetzt:

systemctl disable cam.service
systemctl enable cam.service
reboot

eingegeben und nach dem hochfahren läuft das Script?

An was lag es?

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11265

Wohnort: München

Es war vermutlich nur für das reboot.target als enabled eingetragen (bzw. durch Symlinks verlinkt).

matze31

(Themenstarter)

Anmeldungsdatum:
25. Oktober 2015

Beiträge: 791

Ok. Dann weiß ich für die Zukunft bescheid und brauch diesbezüglich nicht nochmal zu Fragen. Wird bei der Option "WantedBy=reboot.target" immer bei Neustart gestartet?

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11265

Wohnort: München

matze31 schrieb:

Ok. Dann weiß ich für die Zukunft bescheid und brauch diesbezüglich nicht nochmal zu Fragen. Wird bei der Option "WantedBy=reboot.target" immer bei Neustart gestartet?

Ich habe das noch nicht selber ausprobiert, da ich bislang keinen Anwendungsfall dafür hatte, aber da das reboot.target laut Manpage aktiviert wird, wenn man systemctl reboot ausführt, würde ich am ehesten erwarten, dass eine Unit damit beim Herunterfahren vor dem Neustart ausgeführt wird:

       reboot.target
           A special target unit for shutting down and rebooting the system.

           Applications wanting to reboot the system should start this unit.

           runlevel6.target is an alias for this target unit, for
           compatibility with SysV.

Da die Units automatisch einen Konflikt zum shutdown.target haben, wenn wie in der Voreinstellung implizit DefaultDependencies=true gesetzt ist, ist der gängigere Weg eine Unit vor dem Shutdown auszuführen, indem man sie in den ExecStop Befehl einer Unit packt, die beim Systemstart einen Dummy-Befehl ausführt und dank RemainAfterExit=true als aktiv gewertet wird: https://unix.stackexchange.com/questions/39226/how-to-run-a-script-with-systemd-right-before-shutdown#41756

matze31

(Themenstarter)

Anmeldungsdatum:
25. Oktober 2015

Beiträge: 791

Ich meinte eigentlich "multi-user.target" die Option, die wird immer nach dem Start gestartet?

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11265

Wohnort: München

Das hängt vom gewählten Target ab, in das systemd booten soll.

Systemd startet ohne weitere Konfiguration das default.target, das bei gängigen Distributionen standardmäßig ein Link auf das graphical.target ist.

Das graphical.target startet das multi-user.target als Abhängigkeit und damit alle Units, die dafür enabled sind (das kannst du mittels systemctl cat default.target sehen). Mit systemd-analyze plot > ~/boot.svg kannst du dir eine Vektorzeichnung vom Bootvorgang erstellen lassen, dann siehst du besser, was da alles auf deinem System abläuft.

matze31

(Themenstarter)

Anmeldungsdatum:
25. Oktober 2015

Beiträge: 791

ok alles klar. ☺

Antworten |