systemd: Activer, statut de lancement (Attentes)

Si je le fais dans le script, lorsque l'appel d'appel sera affiché "d'accord".

systemctl permettre foo

systemctl start foo

systemctl status foo

Mais juste quelques millisecondes, "échec".

Comment puis-je déterminer si le lancement a réussi?

Ce que signifie "réussir" ici pour moi: le serveur gagné.

Systemd Exécute le processus et n'attends pas que le serveur commence correctement.

Exemple: la configuration du serveur contient une erreur de syntaxe. Le serveur fonctionnera plusieurs millisecondes, mais cesse de travailler.

La solution la plus simple serait d'effectuer «sleep 1» Avant mon défi «systemctl status foo».

Mais il semble sale.

Peut-être qu'il y a une meilleure solution pour le statut réel après le démarrage du serveur.

Je me soucie seulement du début. Si dans deux heures, le serveur échoue, il n'est pas inclus dans cette question.
Invité:

Giselle

Confirmation de:

Habituellement, vous obtenez

failed

Statut dans cette commande de sortie pour le processus d'exécution lorsque:

Le processus est complété par S.

status

Ce qui n'est pas égal

0

ou avec le statut autre que

SuccessExitStatus

Le paramètre spécifié dans le fichier de module

[Service]

section

Signal impur envoyé par le démon (tuer, etc.)

TEMPS-OUT Lorsque vous exécutez un démon, peut être installé à travers

TimeoutStartSec

ou

TimeoutSec

, défaut - évaluer

DefaultTimeoutStartSec

, qui vaut généralement la peine 90 secondes ou installées dans

system.conf

,

[Manager]

section

Watchdog (lorsque

type=notify

), Comme ci-dessus, géré

WatchdogSec

,

RuntimeWatchdogSec


Le service doit appeler régulièrement sd_notify (3) de «WATCHDOG = 1» (t. E. «Keep-alive ping»). Si le temps entre deux appels est supérieur à l'heure configurée, le service est traduit dans l'état de défaillance.



type

incorrectement installé dans le fichier de module

GuessMainPID


Prend une valeur logique indiquant si systemd Essayez de deviner basique PID Services, s'il ne peut pas être défini de manière sécurisée.

Ce paramètre est ignoré s'il n'est pas installé Type = forking.

et PIDFile = non installé car pour d'autres types ou avec un fichier clairement configuré PID Toujours connu primaire PID. Un algorithme de devinettes peut venir à des conclusions incorrectes si le démon consiste en plus d'un processus.

Si le principal PID Ne peut pas être déterminé, le service de détection de défaillance et de redémarrage automatique ne fonctionnera pas de manière fiable.

. Défaut oui.

Pour répondre aux questions, connectez-vous ou registre