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 on Debian/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 off Debian/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.conf
dont 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.service
dans 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 --list
sous CentOS/Red-Hat. - Recharger SystemD :
systemctl daemon-reload