Quelle est la différence entre le type de service Systemd oneshot et simple
Quelle est la différence entre systemd
service Type
oneshot
et simple
?
Ce lien les états à utiliser simple
au lieu de oneshot
pour le timer. Je ne suis pas capable de le comprendre correctement.
2 réponses
Type=oneshot
Unité de service:
bloque sur une opération de démarrage jusqu'à la sortie du premier processus, et son état sera signalé comme "activant";
une fois le premier processus terminé, les transitions "activant" directement vers "inactif", sauf si
RemainAfterExit=true
est défini (auquel cas il devient "actif" sans processus!);peut avoir n'importe quel nombre (0 ou plus)
ExecStart=
instructions qui seront exécutées de manière séquentielle (en attente de chaque a commencé le processus de sortie avant de commencer la suivante);risque de laisser de côté
ExecStart=
maisExecStop=
(avecRemainAfterExit=true
pour l'organisation des choses à exécuter sur l'arrêt du système).
Type=simple
Unité de service:
ne bloque pas lors d'une opération de démarrage (I. E. devient "actif" immédiatement après la bifurcation du premier processus, même s'il est encore l'initialisation!);
une fois le premier processus terminé, transitions de "actif" à "inactif" (il n'y a pas de
RemainAfterExit=
option);est généralement déconseillé parce qu'il n'y a aucun moyen de distinguer les situations comme "sorti au départ à cause d'une erreur de configuration" de "écrasé après 500ms d'exécution" et ainsi de suite.
Type=oneshot
et Type=simple
unités:
- ignorez tout enfant de la premier processus, donc n'utilisez pas ces modes avec les processus de bifurcation (note: vous pouvez utiliser
Type=oneshot
KillMode=none
,mais faire cela seulement si vous savez ce que vous faites).
à Partir de systemd point de vue, Type=simple
est une sorte de feu et d'oubli. Systemd ne fait que bifurquer un processus défini dans ExecStart=
et poursuit sa route, même si le processus ne démarre pas.