40
modifications
(Page créée avec « Le programme ''/sbin/init'' est le premier lancé au démarrage (après le noyau et l'initrd). C'est lui qui va gérer le démarrage du système. Il est lancé par l'utilisat... ») |
Aucun résumé des modifications |
||
Ligne 1 : | Ligne 1 : | ||
Le programme ''/sbin/init'' est le premier lancé au démarrage (après le noyau et l'initrd). C'est lui qui va gérer le démarrage du système. Il est lancé par l'utilisateur root. | Le programme '''/sbin/init''' est le premier lancé au démarrage (après le noyau et l'initrd). C'est lui qui va gérer le démarrage du système. Il est lancé par l'utilisateur root. | ||
= Runlevels = | = Runlevels = | ||
Ligne 26 : | Ligne 26 : | ||
** once: lance le process une seule fois | ** once: lance le process une seule fois | ||
** wait : exécute le process et attend la fin de son exécution | ** wait : exécute le process et attend la fin de son exécution | ||
** respawn : exécute le process sans cesse (on le relance dès qu'il | ** respawn : exécute le process sans cesse (on le relance dès qu'il s'est terminé) | ||
= Scripts de démarrage = | = Scripts de démarrage = | ||
== Syntaxe == | |||
Les scripts de démarrage des services sont dans le dossier /etc/init.d/ | |||
Ils sont construits de la façon suivante : | |||
* ''/etc/init.d/nom_du_service start'' : lance le service | |||
* ''/etc/init.d/nom_du_service stop'' : stoppe le service | |||
* ''/etc/init.d/nom_du_service reload'' : relance le service (prend en compte la nouvelle configuration) | |||
* ''/etc/init.d/nom_du_service restart'' : relance complètement le service (équivaut à stop, puis start) | |||
* ''/etc/init.d/nom_du_service status'' : affiche le status (facultatif) | |||
Pour être utilisables, un script doit avoir le droit d'éxécution et doit avoir au début des commentaires sous la forme : | |||
### BEGIN INIT INFO | |||
# Provides: nom_du_service | |||
# Required-Start: dépendance1 dépendance2 | |||
# Required-Stop: dépendance1 dépendance2 | |||
# Default-Start: 2 3 4 5 | |||
# Default-Stop: 0 1 6 | |||
# Short-Description: Une courte description | |||
# Description: Une description plus détaillée du service | |||
### END INIT INFO | |||
Pour plus d'infos, voir la section sur les tags LSB dans le wiki debian.org : http://wiki.debian.org/LSBInitScripts?highlight=%28BEGIN%29%7C%28INIT%29%7C%28INFO%29 | |||
== Activation == | |||
Cette commande permet de créer les liens symboliques dans les dossiers /etc/rcX.d, ou X représente le runlevel. Ces liens sont nommés par une lettre (S ou K), suivi d'un numéro et du nom du service. | |||
Les lettres S (start) et K (kill) servent à déterminer si le service doit être démarré ou éteint (on verra donc essentiellement des liens « K » dans /etc/rc0.d et /etc/rc6.d) | |||
Les numéros servent à donner une priorité (les scripts ayant le numéro le plus élevés sont exécutés en dernier). | |||
Les liens dans /etc/rcS.d sont éxecutés à chaque démarrage, pour tous les runlevels. | |||
On peut gérer ses liens avec la commande '''update-rc.d'''. | |||
La commande '''sysv-rc-conf''' (apt-get install sysv-rc-conf) permet de faire la même chose dans une interfaces curses. | |||
'''Attention''' : Si vous modifiez des liens installés par debian, il peuvent réapparaitre lors de la mise à jour du paquet concerné. | |||
La plupart des scripts init installés par debian « sourcent » un fichier ''/etc/default/nom_du_service''. Ce fichier contient généralement une variable permettant de ne pas démarrer le service, même si le script est lancé, ce qui permet de désactiver le démarrage d'un service au boot de façon pérenne. | |||
= Petits ajustements au démarrage = | |||
Lorsqu'on veut simplement lancer une commande ou un petit script à chaque démarrage, il n'est pas nécessaire d'écrire un script init complet. Le fichier '''/etc/rc.local''' est exécuté à chaque boot, pour tous les runlevels, après les scripts init. | |||
Attention, comme les scripts init, ils doit rendre la main après son exécution. | |||
= Ressources = | |||
* Pages de manuel : init(8), inittab(5), update-rc.d(8), sysv-rc-conf(8), insserv(8) | |||
* Le fichier /etc/init.d/skeleton montre un exemple de script init |
modifications