Il existe actuellement 3 principaux systèmes init utilisés par linux. Il y a quelques années, il n'y en avait qu'un, SysVinit. Cependant, SysVinit manquait cruellement de fonctionnalités telles que la représentation graphique de la dépendance des services. Elle est donc désormais obsolète dans la plupart des distributions. Actuellement, la plupart des distributions passent à systemd . Bien qu'il y ait aussi du débutant .
Mais voici la réponse à votre question pour chacun des 3 systèmes init:
SysVinit
SysVinit actuellement utilisé par Debian et RedHat. Bien que la prochaine version de RedHat (7) utilise systemd.
Le moyen universel d'activer les services SysVinit au démarrage consiste à les lier de manière symbolique entre /etc/rc3.d
(ou /etc/rc2.d
). Tous les services peuvent être trouvés dans /etc/init.d
. Notez cependant que les distributions auront souvent leur propre outil pour gérer ces fichiers, et que cet outil devrait plutôt être utilisé. (Fedora / RedHat a service
et chkconfig
, Ubuntu a update-rc.d
)
Liste des services:
ls /etc/init.d/
Démarrer le service:
/etc/init.d/{SERVICENAME} start
ou
service {SERVICENAME} start
Aire d'autoroute:
/etc/init.d/{SERVICENAME} stop
ou
service {SERVICENAME} stop
Activer le service:
cd /etc/rc3.d
ln -s ../init.d/{SERVICENAME} S95{SERVICENAME}
(le S95
sert à spécifier l'ordre. S01 commencera avant S02, etc.)
Désactiver le service:
rm /etc/rc3.d/*{SERVICENAME}
Systemd
La distribution la plus notable utilisant systemd est Fedora. Bien qu'il soit utilisé par beaucoup d'autres. De plus, avec Debian ayant choisi de passer à systemd avec updart, il deviendra le système de facto upstart pour la plupart des distributions (ubuntu a déjà annoncé qu’elles abandonneraient upstart pour systemd).
Liste des services:
systemctl list-unit-files
Démarrer le service:
systemctl start {SERVICENAME}
Aire d'autoroute:
systemctl stop {SERVICENAME}
Activer le service:
systemctl enable {SERVICENAME}
Désactiver le service:
systemctl disable {SERVICENAME}
Parvenu
Upstart a été développé par les gens d'Ubuntu. Mais après que Debian ait décidé d’utiliser Systemd , Ubuntu a annoncé qu’ils abandonneraient le système .
Upstart a également été brièvement utilisé par RedHat, car il est présent dans RHEL-6, mais il n’est pas couramment utilisé.
Liste des services:
initctl list
Démarrer le service:
initctl start {SERVICENAME}
Aire d'autoroute:
initctl stop {SERVICENAME}
Activer le service:
2 façons malheureusement:
Il y aura un fichier /etc/default/{SERVICENAME}
qui contient une ligne ENABLED=...
. Changer cette ligne à ENABLED=1
.
Il y aura un fichier /etc/init/{SERVICENAME}.override
. Assurez-vous qu'il contient start
(ou est totalement absent), pas manual
.
Désactiver le service:
echo manual > /etc/init/{SERVICENAME}.override
Remarque: il existe également le système d'initiation 'OpenRC' utilisé par Gentoo. Actuellement, Gentoo est la seule distribution qui l'utilise, et son utilisation n'est pas envisagée, ni prise en charge par une autre distribution. Donc, je ne couvre pas son utilisation (bien que si l’opinion est la même, je peux l’ajouter).