La sous-commande de systemctl
concerne uniquement le rechargement start / stop du service, et bien qu'il y ait étrangement de nombreuses sous-commandes préparées, il y a de nombreux points que je ne comprends pas car les sous-commandes importantes sont insuffisantes et la dénomination et le comportement sont délicats. Je l'ai résumé.
Chose que tu veux faire | COMMAND | active | inactive |
---|---|---|---|
Je veux le démarrer | systemctl start xxx | ne fais rien(exit 0) | start (Starting,Started) |
Je veux arrêter | systemctl stop xxx | stop (Stopping,Stoped) | ne fais rien(exit 0) |
Redémarrer si en cours d'exécution, démarrer si arrêté | systemctl restart xxx | restart (Stopping,Starting,Started) | start (Starting,Started) |
Redémarrez s'il est en cours d'exécution, ne faites rien s'il est arrêté | systemctl try-restart xxx | restart (Stopping,Starting,Started) | ne fais rien(exit 0) |
Recharger si en cours d'exécution(Support de rechargement d'unité requis), Erreur si arrêté | systemctl reload xxx | reload (Reloaded) | Erreur(echo "Job for xxx.service invalid." >&2; exit 1) |
Recharger si en cours d'exécution(Redémarrez si l'unité ne prend pas en charge le rechargement), Démarrer si arrêté | systemctl reload-or-restart xxx | reload (Reloaded) | start (Starting,Started) |
Recharger si en cours d'exécution(Redémarrez si l'unité ne prend pas en charge le rechargement), Erreur si arrêté | systemctl reload-or-try-restart xxx | reload (Reloaded) | Erreur(echo "Job for xxx.service invalid." >&2; exit 1) |
Recharger si en cours d'exécution(Redémarrez si l'unité ne prend pas en charge le rechargement)Ne rien faire si arrêté | if systemctl -q is-active xxx; then systemctl reload-or-restart xxx; fi | reload (Reloaded) | ne fais rien(exit 0) |
――Je veux te féliciter
start
et stop
étant haut ou bas.restart
était une image d'ignorance du pré-état et d'exécution approximative de stop and start, mais avec systemctl, s'il est à l'état arrêté, il se comporte comme si seul le démarrage était exécuté sans arrêt inutile. Un peu intelligent. En interne, peut-être que le simple fait d'appeler stop / start montre les avantages de rendre l'arrêt / démarrage plus intelligent lors du redémarrage tel qu'il est.recharger-ou-redémarrer
. À l'époque de SysVinit, j'écrivais souvent une ligne unique qui vérifie l'état et utilise le rechargement et le redémarrage correctement. Hmm? Mais ce comportement est un peu différent du nom ...?
―― De quoi vous voulez vous plaindre
«L'impression et le comportement du mot« try-restart »sont différents, n'est-ce pas? Quand on m'a dit d'essayer de redémarrer, j'ai eu l'impression que "Ignorez le pré-état et essayez de redémarrer stop, démarrez pour le moment", mais en réalité, selon le pré-état, "Redémarrez (arrêtez, démarrez) s'il est en cours d'exécution, et déjà S'il est arrêté, il se terminera normalement sans s'arrêter et ne rien faire. »Au contraire, il se comporte subtilement et intelligemment. Non, le comportement en lui-même est bon car je veux souvent ce genre de comportement, mais je ne m'intéresse qu'au nom ... Y a-t-il un problème si c'est le sentiment d'une personne de langue maternelle anglaise? ce. Ai-je tort de comprendre mon essai?reload-or-restart
se comporte comme une erreur lorsqu'il n'est pas en cours d'exécution, et reload-or-restart-or-start séparément Je pense que j'aurais dû créer une sous-commande avec un nom comme
et la faire se comporter comme l'actuelle reload-or-restart
, bien qu'il n'y ait pas de telle sous-commande. De plus, si je change de comportement maintenant, la compatibilité ne sera pas maintenue et des problèmes se produiront, et ce n'est pas grave car c'est un festival plus tardif ...
――Pourquoi ne pas "Recharger si en cours d'exécution (redémarrer si l'unité ne prend pas en charge Recharger), ne rien faire si arrêté" n'existe pas! ?? Il y aura une scène pour l'utiliser. J'écris toujours cette seule ligne.
――Je ne comprends pas encore la signification du mot «essayez-redémarrer» ... Pourquoi reload-or-try-restart
donne une erreur quand il est arrêté, même s'il n'a rien fait pendant l'arrêt et s'est terminé normalement? Le nom et le comportement des sous-commandes ne sont-ils pas globalement trop différents? Utiliser SysVinit ou Upstart comme tremplin, est-ce le mécanisme de gestion des ressources qui est sorti dans le dernier numéro? Quelle est cette sensation peu sophistiquée ...legacy alias
qui apparaît dans bash-completion disparaisse des candidats à la complétion.Les sous-commandes suivantes existaient selon la convention de certaines distributions, mais lorsqu'elles sont rassemblées dans systemctl, les alias correspondants suivants sont définis en interne comme «alias hérités» et peuvent être acceptés et utilisés, mais fondamentalement Il ne l'utilise pas.
Ces sous-commandes n'apparaissent pas dans la liste de systemctl --help
, mais elles sont traitées comme si elles étaient sur man. Fondamentalement, je n'en ai pas besoin, mais en complétion comme bash-completion
, il apparaît généralement comme une sous-commande dans la liste. Pour cette raison, même gratuitement, il existe de nombreuses sous-commandes liées au service et c'est difficile à comprendre, mais "Quelle est la différence entre cond reload et reload? Aide" ... Je pense que cela a gaspillé les ressources des ingénieurs du monde entier, et je veux qu'ils soient confus et ennuyés et disparaissent de la liste complémentaire. N'y a-t-il pas un cas où vous osez compléter cela et l'utiliser?
Non, je sais qu'il y a beaucoup de bons points en termes de mécanisme par rapport à diverses choses dans le passé, mais je suis surpris que le groupe de sous-commandes du système d'exploitation de service que j'utilise le plus souvent soit subtil. Peut-être que je m'en fiche car je n'utilise status / start / stop / restart / reload que si je l'utilise normalement. Lorsque vous créez un fichier de configuration ansible, lorsque vous souhaitez utiliser recharger ou démarrer correctement tout en vérifiant l'état à l'avance, ou lorsque vous souhaitez juger de l'état approprié par l'état de fin, le nom de la sous-commande est organisé et mémorisé de manière logique. Je ne peux pas le faire et le comportement est bâclé, donc je suis inquiet et je finis par écrire tout en vérifiant le document et le comportement réel à chaque fois.
Recommended Posts