web-dev-qa-db-fra.com

Quelle est la différence entre le type de service Systemd onehot et le simple

Quelle est la différence entre systemd service Typeoneshot et simple? Ce lien indique qu'il faut utiliser simple au lieu de oneshot pour les minuteries. Je ne suis pas capable de comprendre correctement.

33
Dinesh P.R.

Le Type=oneshot unité de service:

  • bloque une opération de démarrage jusqu'à la fin du premier processus et son état sera signalé comme "activant";

  • une fois que le premier processus est terminé, le passage de "l'activation" à l'état "inactif", à moins que RemainAfterExit=true est défini (dans ce cas, il devient "actif" sans processus!);

  • peut avoir un nombre quelconque (0 ou plus) de ExecStart= directives qui seront exécutées séquentiellement (attendre que chaque processus démarré se termine avant de démarrer le suivant);

  • peut laisser de côté ExecStart= mais j'ai ExecStop= (utile avec RemainAfterExit=true pour que les choses fonctionnent lors de l’arrêt du système).

Le Type=simple unité de service:

  • ne bloque pas une opération de démarrage (c.-à-d. devient "actif" immédiatement après la suppression du premier processus, même s'il est toujours en cours d'initialisation!);

  • une fois le premier processus terminé, passe de "actif" à "inactif" (il n'y a pas de RemainAfterExit= option);

  • est généralement déconseillée car il n’existe aucun moyen de distinguer des situations telles que "sortie au démarrage à cause d’une erreur de configuration" de "crashé après 500 ms d’exécution" et ainsi de suite.

Tous les deux Type=oneshot et Type=simple unités:

  • ignorez tous les enfants du premier processus, aussi n'utilisez pas ces modes avec les processus de forking (remarque: vous pouvez utiliser Type=oneshot avec KillMode=none, mais ne le faites que si vous savez ce que vous faites).
49
intelfx

Du point de vue de systemd, Type=simple est une sorte de feu et oublie. Systemd se contente de lancer un processus défini dans ExecStart= et continue, même si le processus ne démarre pas.

0
Umut