Kit de survie pour SystemD
Commandes générales
Comparaison des différentes commandes :
| Action | SysSysinit V | SystemD | Commentaire |
|---|---|---|---|
| Activer | CentOS/Red-Hat : chkconfig $SERVICE onDebian/Ubuntu : insserv $SERVICE |
systemctl enable $SERVICE |
|
| Arrêter | service $SERVICE stop |
systemctl stop $SERVICE |
|
| Démarrer | service $SERVICE start |
systemctl start $SERVICE |
|
| Désactiver | CentOS/Red-Hat : chkconfig $SERVICE offDebian/Ubuntu : insserv -r $SERVICE |
systemctl disnable $SERVICE |
|
| Modifier | vim /etc/init.d/$SERVICE |
systemctl edit $SERVICE |
Voir ci-dessous. |
| Recharger | service $SERVICE reload |
systemctl reload $SERVICE |
Prend en compte les modifications de configuration sans redémarrer le service. Pas toujours disponible. |
| Redémarrer | service $SERVICE restart |
systemctl restart $SERVICE |
|
| Vérifier | service $SERVICE status |
systemctl status $SERVICE |
Pas toujours disponible dans les services Sysinit V. |
Notez que la commande systemctl peut agir sur plusieurs services, les expressions régulières sont autorisées.
Par exemple systemctl restart mastodon-* redémarrera tout les services dont le nom commande par mastodon-
Créer un nouveau service
Utiliser la commande systemctl edit --full --force $SERVICE afin de créer un nouveau fichier de description de service à partir de rien, il sera stocké dans /etc/systemd/system/$SERVICE.service.
Une fois la modification effectuée, relancer SystemD pour prendre en compte les modifications : systemctl daemon-reload
Modification d'un service
Les fichier de deszcription de services de SystemD sont dans /lib/systemd/system/*.service, ceux-ci n'ont pas vocation à être modifiés ! Pour modifier un service, soit :
- Utiliser la commande
systemctl edit $SERVICE.service, cela créera un fichier de surcharge (override) dans/etc/system/$SERVICE.service.d/override.confdont les modifications s'ajouteront ou remplaceront - si déjà existantes - les directives présentent dans le fichier de configuration de base du service. - Copier le fichier de description présent dans
/lib/systemd/system/$SERVICE.servicedans le répertoire/etc/systemd/system/, ce dernier aura alors la priorité, l'original sera totalement ignoré.
Une fois la modification effectuée, relancer SystemD pour prendre en compte les modifications : systemctl daemon-reload
SystemD en tant qu'utilisateur simple
SystemD gère les service au niveau utilisateur via l'option --user, c'est à dire des services qui ne sont pas démarrés au boot du système mais au login d'un utilisateur. Dans ce cas, la commande systemctl peut être utilisée sans sudo par l'utilisateur.
Les fichiers de description de services sont à placer dans ~/.config/systemd/user/$SERVICE.service.
Autres commandes
- Lister les services :
systemctl list-units, équivalant àchkconfig --listsous CentOS/Red-Hat. - Recharger SystemD :
systemctl daemon-reload

