Il y en a beaucoup plus que ce que vous avez mentionné. systemctl
est capable de le faire :
- systemd est rétrocompatible avec SysV.
- charge les services en parallèle au démarrage
- il permet l'activation d'un service à la demande
- il est basé sur la dépendance
- et bien d'autres choses encore...
systemd
fonctionne avec des unités, il y a différents types d'unités : les cibles, les services, les sockets, etc. Les cibles sont le même concept que les niveaux d'exécution, elles sont un ensemble d'unités.
Vous pouvez utiliser systemctl
pour définir ou obtenir la cible système par défaut.
systemctl get-default
Vous pouvez atteindre d'autres cibles :
systemctl isolate multiuser.target
Les autres cibles sont : multiutilisateur, graphique, recueillement, urgence, redémarrage, mise hors tension.
Comme vous l'avez dit, vous pouvez utiliser systemctl
pour gérer les services, les autres commandes liées à la gestion des services dont j'ai connaissance sont les suivantes :
# Restarts a service only if it is running.
systemctl try-restart name.service
# Reloads configuration if it's possible.
systemctl reload name.service
# try to reload but if it's not possible restarts the service
systemctl reload-or-restart name.service
Vous pouvez l'utiliser pour connaître l'état d'un service :
systemctl status name.service
systemctl is-active name.service # running
systemctl is-enabled name.service # will be activated when booting
systemctl is-failed name.service # failed to load
Vous pouvez masquer ou démasquer un service :
systemctl mask name.service
systemctl unmask name.service
Lorsque vous masquez un service, il sera lié à /dev/null
Ainsi, manuellement ou automatiquement, les autres services ne peuvent pas l'activer ou le désactiver. (vous devez d'abord le démasquer).
Une autre utilisation de systemctl est la liste des unités :
systemctl list-units
Qui répertorie tous les types d'unités, chargées et actives.
Dresser la liste des unités de service :
systemctl list-units --type=service
Ou de lister toutes les unités disponibles et pas seulement celles qui sont chargées et activées :
systemctl list-unit-files
Vous pouvez créer des alias ou même contrôler des machines distantes.
systemctl --host ravexina@192.168.56.4 list-units
D'autre part service
fait ce qu'il a à faire, gérer les services et ne pas se mêler des affaires des autres ;)