Ich habe in einer Service-Datei drin "ExecStartPre=/bin/sleep 90". Aber leider verzögert das den Start des Services jedes mal. Ich möchte die Verzögerung aber nur nach dem Booten, sonst nicht. Wie kann ich das machen? In /proc/uptime habe ich die Zeit in Sekunden nach Booten. Wie baue ich daraus ein "if"?
Service nach dem Booten verzögern
![]() Anmeldungsdatum: Beiträge: 869 Wohnort: Schwetzingen |
|
Anmeldungsdatum: Beiträge: 12067 |
Nutze doch systemd/Timer Units dafür. |
(Themenstarter)
![]() Anmeldungsdatum: Beiträge: 869 Wohnort: Schwetzingen |
Interessant. Dann hätte ich also die eigentlich Service-Unit bimbam.service und den Timer-Teil bimbam.timer? Wie verhindere ich dann, dass bimbam.service vom System automatisch gestartet wird? |
Anmeldungsdatum: Beiträge: 14296 |
|
Anmeldungsdatum: Beiträge: 29567 |
Hallo,
Wie oft wird der Service denn gestartet, während der Rechner läuft? Gruß, noisefloor |
Anmeldungsdatum: Beiträge: 14296 |
BTW: Manche user konfigurieren dann noch einen cronjob, der die service-unit danach, warum auch immer, noch regelmäßig (re)starten soll, ... was aber nicht nötig wäre, denn eine timer-unit kann das besser (... d. h. verzögert starten und danach auch noch in regelmäßigen Zeitabständen ausführen/restarten). Z. B.: :~ $ systemctl cat killyffmpeg.timer # /etc/systemd/system/killyffmpeg.timer [Unit] Description=kill ffmpeg process if necessary [Timer] OnActiveSec=60 OnUnitActiveSec=180 AccuracySec=1 RandomizedDelaySec=60 [Install] WantedBy=multi-user.target |
(Themenstarter)
![]() Anmeldungsdatum: Beiträge: 869 Wohnort: Schwetzingen |
Nur wenn es Probleme gibt. Aber dann möchte ich natürlich nicht 5 Minuten warten, bis alles wieder läuft. |
Anmeldungsdatum: Beiträge: 29567 |
Hallo, ok. Nächste Frage: warum brauchst du die 90 Sekunden Verzögerung. Also auf welches Ereignis wartest du, was bis zum Ende des Bootvorgangs nicht eingtreten ist? Gruß, noisefloor |
(Themenstarter)
![]() Anmeldungsdatum: Beiträge: 869 Wohnort: Schwetzingen |
Funktioniert perfekt. Merci vielmal! |
(Themenstarter)
![]() Anmeldungsdatum: Beiträge: 869 Wohnort: Schwetzingen |
Nextcloud muss voll aktiv sein und Wifi muss Verbindung haben. |
Anmeldungsdatum: Beiträge: 29567 |
Hallo, das lässt sich über Anhängigkeiten ( Gruß, noisefloor |
(Themenstarter)
![]() Anmeldungsdatum: Beiträge: 869 Wohnort: Schwetzingen |
Nextcloud ist ein Snap, habe es nicht geschafft das mittels "After" zu regeln. Als Timer-unit funktioniert es jetzt gut und es hat fast keinen Nachteil. |
Anmeldungsdatum: Beiträge: 29567 |
Hallo,
Das spielt keine Rolle - snaps werden ja auch über systemd gestartet bzw haben eine ganze Reihe von Units. Ungetestet würde ich sagen, dass in deiner Unit die Direktiven Gruß, noisefloor |
(Themenstarter)
![]() Anmeldungsdatum: Beiträge: 869 Wohnort: Schwetzingen |
chatGPT hat gesagt ich bräuchte in einer Timer-Unit die Zeile "WantedBy=timers.target". Was ist davon zu halten? |
Anmeldungsdatum: Beiträge: 14296 |
Nicht viel, denn wenn Du in deiner timer-unit nicht: DefaultDependencies=no gesetzt hast, ist: Timer units will automatically have dependencies of type Requires= and After= on sysinit.target, a dependency of type Before= on timers.target, as well ... Wenn Du den Eintrag mit "WantedBy=" (noch) machst, hat das zur Folge: The primary result is that the current unit will be started when the listed unit is started, see the description of Wants= and Requires= in the [Unit] section for details. Siehe dazu den Unterschied zwischen "Before=" und "Wants=/Requires=". Quellen: https://wiki.ubuntuusers.de/systemd/Units/ https://www.freedesktop.org/software/systemd/man/systemd.unit.html |