systemd
nous donne la systemctl
suite de commandes qui est principalement utilisée pour permettre aux services de démarrer au démarrage. Nous pouvons également démarrer, arrêter, recharger, redémarrer et vérifier l’état des services à l’aide de systemctl
.
Nous pouvons faire, par exemple, sudo systemctl enable service_name
et service_name
démarrera automatiquement au démarrage. Nous pouvons également désactiver les services pour ne pas démarrer au démarrage.
La seule différence entre les commandes service
et peut-elle être utilisée pour permettre le démarrage de services au moment de l'exécution? Pouvons-nous utiliser n'importe quel service? Quelles sont les autres différences significatives?systemctl
systemctl
systemctl
command-line
services
systemd
luv.preet
la source
la source
Réponses:
La
service
commande est un script de wrapper qui permet aux administrateurs système de démarrer, d’arrêter et de vérifier le statut des services sans trop s’inquiéter du système init utilisé. Avant l'introduction de systemd, c'était un wrapper pour les/etc/init.d
scripts et lainitctl
commande d'Upstart , et maintenant c'est un wrapper pour ces deux-là etsystemctl
aussi.Utilisez la source, Luke!
Il vérifie pour Upstart:
Si cela ne fonctionne pas, il cherche systemd:
Et si cela échoue également, les
/etc/init.d
scripts System V sont utilisés:Comme la
service
commande est un wrapper assez simple, elle ne prend en charge qu'un sous-ensemble limité d'actions par rapport à ce que le système init réel pourrait fournir.Pour la portabilité sur différentes versions d'Ubuntu, les utilisateurs peuvent utiliser la
service
commande de manière fiable pour démarrer, arrêter, redémarrer ou examiner le statut d'un service. Pour des tâches plus complexes, cependant, la commande utilisée, que ceinitctl
soitsystemctl
ou ou le/etc/init.d
script doive être utilisé directement.De plus, en tant que wrapper, le
service
script fait parfois plus que ne le ferait une commande directe équivalente. Par exemple:/etc/init.d
scripts dans un environnement propre. (Notez l' invocation de commande longueenv
dans larun_via_sysvinit
fonction ci-dessus.)restart
sur les systèmes Upstart une combinaison destop
/start
, puisqu'un message d'initctl restart
erreur se produira si le service ne fonctionne pas déjà.Il arrête les sockets lors de l’arrêt des services systemd auxquels sont associés des sockets:
Les services Upstart ont été activés directement dans le fichier de configuration du service (ou désactivés via des substitutions) et les scripts System V ont été activés ou désactivés avec la
update-rc.d
commande (qui gérait les liens symboliques dans les/etc/rc*
répertoires). Elleservice
n'a donc jamais été impliquée dans l'activation ou la désactivation de services au démarrage. .la source
Il y a beaucoup plus que ce que vous avez mentionné qui
systemctl
est capable de.systemd
fonctionne avec des unités, il existe différents types d’unités: cibles, services, sockets, etc. Les cibles correspondent au même concept que les niveaux de fonctionnement, c’est un ensemble d’unités.Vous pouvez utiliser
systemctl
pour définir ou obtenir la cible système par défaut.Vous pouvez aller dans d'autres cibles:
Les autres cibles sont: multi-utilisateur, graphique, recue, urgence, redémarrage, extinction.
Comme vous l'avez dit, vous pouvez utiliser
systemctl
pour gérer des services, certaines des commandes associées à la gestion des services dont je suis au courant sont les suivantes:Vous pouvez l'utiliser pour connaître l'état d'un service:
Vous pouvez masquer ou démasquer un service:
Lorsque vous masquez un service auquel il sera lié
/dev/null
, il ne peut donc pas l'activer / l'activer manuellement ou automatiquement. (vous devriez d'abord le démasquer).Une autre utilisation de systemctl est de lister les unités:
Quelle liste toutes sortes d'unités, chargées et actives.
Liste des unités de service:
Ou pour lister toutes les unités disponibles, pas seulement celles chargées et activées:
Vous pouvez créer des alias ou même contrôler des machines distantes
D'autre part
service
fait ce qu'il doit faire, la gestion des services et n'a rien à voir avec les affaires des autres peuples;)la source
service
peut faire mais passystemctl
?service start
infructueuses. Pre-systemd,service start
me laisserait voir tout de suite pourquoi mon service ne commencerait pas. Post-systemd, je dois regarder quatre ou cinq journaux différents avant de pouvoir le trouver. Cela dit, mon commentaire est sans aucun doute hors sujet et sera probablement supprimé.service
commande, cela ne faisait-il pas partie de la question?