it-swarm.com.de

Was ist der Unterschied zwischen Systemd Service Type oneshot und simple?

Was ist der Unterschied zwischen systemd Service Typeoneshot und simple? In diesem Link wird angegeben, dass simple anstelle von oneshot für Timer verwendet werden soll. Ich kann es nicht richtig verstehen.

33
Dinesh P.R.

Die Serviceeinheit Type=oneshot:

  • blockiert einen Startvorgang, bis der erste Prozess beendet wird, und sein Status wird als "aktivierend" gemeldet;

  • sobald der erste Prozess beendet ist, wechselt der Übergang von "Aktivieren" direkt zu "Inaktiv", es sei denn, RemainAfterExit=true ist gesetzt (in diesem Fall wird er "Aktiv" ohne Prozesse!).

  • kann eine beliebige Anzahl (0 oder mehr) von ExecStart= - Anweisungen enthalten, die nacheinander ausgeführt werden (warten, bis jeder gestartete Prozess beendet ist, bevor der nächste gestartet wird);

  • sie können ExecStart= weglassen, haben aber ExecStop= (nützlich zusammen mit RemainAfterExit=true, um die Ausführung beim Herunterfahren des Systems zu arrangieren).

Die Serviceeinheit Type=simple:

  • blockiert einen Startvorgang nicht (dh wird sofort nach dem Abbruch des ersten Vorgangs "aktiv", auch wenn dieser noch initialisiert wird!);

  • sobald der erste Prozess beendet ist, wechselt er von "aktiv" zu "inaktiv" (es gibt keine Option RemainAfterExit=).

  • im Allgemeinen wird davon abgeraten, da Situationen wie "Beim Start aufgrund eines Konfigurationsfehlers beendet" nicht von "Nach 500 ms Laufzeit abgestürzt" und dergleichen unterschieden werden können.

Beide Einheiten Type=oneshot Und Type=simple:

  • ignorieren Sie alle untergeordneten Elemente des ersten Prozesses. Verwenden Sie diese Modi also nicht beim Forken von Prozessen (Hinweis: Sie können Type=oneshot mit KillMode=none verwenden, tun Sie dies jedoch nur, wenn Sie wissen, was Sie tun) tun).
49
intelfx

Aus der Sicht von systemd ist Type=simple Eine Art Feuer und Vergessen. Systemd gibt nur einen in ExecStart= Definierten Prozess aus und macht sich auf den Weg, auch wenn der Prozess nicht startet.

0
Umut