Update-rc.d
| Fiche express | |
|---|---|
| Domaine | Gestion des services (SysV init) |
| Commande | update-rc.d
|
| Contexte | Debian/Ubuntu — remplacé par systemctl sur les distributions systemd récentes |
| Voir aussi | Systemctl (équivalent systemd) |
update-rc.d gère l'activation et la désactivation des services au démarrage sous SysV init sur Debian et Ubuntu (l'équivalent Debian/Ubuntu de chkconfig côté RHEL/SysV). Il installe ou retire les liens symboliques /etc/rc?.d/S* et /etc/rc?.d/K* qui pointent vers les scripts de /etc/init.d/, sans avoir à les manipuler à la main. Sur les distributions récentes passées à systemd, ce mécanisme est remplacé par systemctl enable/disable — voir Systemctl.
Commandes de base
update-rc.d ssh defaults # installe les liens rc?.d avec les priorités par défaut du script
update-rc.d ssh enable # active le service (équivalent d'un start au boot)
update-rc.d ssh disable # désactive sans retirer les liens (bascule K/S sur le runlevel par défaut)
update-rc.d -f ssh remove # retire les liens rc?.d (le -f force si le script init a déjà été supprimé)
defaults installe les liens avec les priorités de démarrage/arrêt indiquées dans l'en-tête LSB du script (/etc/init.d/<service>), ou à défaut des priorités génériques (souvent 20/80, comme pour chkconfig).
Par l'exemple : installer et retirer ssh
apt-get install openssh-server
service ssh start
# activer au démarrage
update-rc.d ssh defaults
update-rc.d ssh enable
# désinstallation complète
apt-get remove openssh-server
apt-get purge openssh-server # supprime aussi les fichiers de configuration
apt-get remove/purge d'un paquet Debian bien packagé retire lui-même les liens rc?.d associés via les scripts de maintainer (postrm) — update-rc.d ... remove manuel n'est utile que pour un script d'init ajouté à la main, hors gestion par un paquet.
Contexte historique
update-rc.d est l'outil Debian/Ubuntu de gestion des runlevels SysV init, au même titre que chkconfig sur RHEL/CentOS. Sur les versions de Debian et Ubuntu passées à systemd (Debian 8+/Ubuntu 15.04+), la gestion des services au démarrage se fait via systemctl enable/systemctl disable — voir Systemctl. update-rc.d reste toutefois disponible sur ces systèmes pour la compatibilité avec les scripts SysV legacy encore présents dans /etc/init.d/ (systemd les prend en charge via une couche de compatibilité).