Familiarisez-vous avec Linux: le répertoire /etc/init.d

Essayez Notre Instrument Pour Éliminer Les Problèmes

Si vous utilisez Linux, vous avez probablement entendu parler du init.d annuaire. Mais que fait exactement ce répertoire? Il fait finalement une chose, mais il le fait pour tout votre système, donc init.d c'est tres important. le init.d Le répertoire contient un certain nombre de scripts de démarrage / arrêt pour divers services de votre système. Tout de acpide à x11-commun est contrôlé à partir de ce répertoire. Bien sûr, ce n'est pas aussi simple que cela.

Si vous regardez le /etc répertoire vous trouverez des répertoires au format rc # .d (Où # est un nombre reflète un niveau d'initialisation spécifique - de 0 à 6). Dans chacun de ces répertoires se trouvent un certain nombre d'autres scripts qui contrôlent les processus. Ces scripts commenceront par un «K» ou un «S». Tous les scripts «K» sont exécutés avant les scripts «S». Et en fonction de l'emplacement des scripts, cela déterminera le moment où les scripts seront lancés. Entre les répertoires, les services système fonctionnent ensemble comme une machine bien huilée. Mais il y a des moments où vous devez démarrer ou arrêter un processus proprement et sans utiliser les commandes kill ou killall. C'est là que le /etc/init.d répertoire est pratique.

Maintenant, si vous utilisez une distribution comme Fedora, vous pouvez trouver ce répertoire dans /etc/rc.d/init.d . Indépendamment de l'emplacement, il sert le même objectif.

Afin de contrôler l'un des scripts dans init.d manuellement, vous devez avoir un accès root (ou sudo). Chaque script sera exécuté en tant que commande et la structure de la commande ressemblera à:

/etc/init.d/command OPTION

commander est la commande réelle à exécuter et OPTION peut être l'un des suivants:

  • début
  • Arrêtez
  • recharger
  • redémarrer
  • rechargement forcé

Le plus souvent, vous utiliserez soit commencer arrêter, ou redémarrer. Donc, si vous souhaitez arrêter votre réseau, vous pouvez émettre la commande:

/etc/init.d/networking stop

Ou si vous apportez une modification à votre réseau et devez le redémarrer, vous pouvez le faire avec la commande suivante:

/etc/init.d/networking restart

Certains des scripts d'initialisation les plus courants de ce répertoire sont:

  • la mise en réseau
  • samba
  • apache2
  • ftpd
  • sshd
  • pigeonnier
  • mysql

Bien sûr, il peut y avoir des scripts plus souvent utilisés dans votre répertoire - cela dépend de ce que vous avez installé. La liste ci-dessus a été tirée d'une installation Ubuntu Server 8.10, donc une installation de bureau standard aurait quelques scripts de type réseau en moins.

Mais qu'en est-il de /etc/rc.local

Il y a une troisième option que j'utilisais un peu. Cette option est la /etc/rc.local scénario. Ce fichier s'exécute après l'exécution de tous les autres scripts de niveau d'initialisation, il est donc prudent de placer diverses commandes que vous souhaitez émettre au démarrage. Plusieurs fois, je placerai des instructions de montage pour des choses comme nfs dans ce script. C'est aussi un bon endroit pour placer des scripts de «dépannage». Par exemple, une fois que j'ai eu une machine que, pour une raison quelconque, la samba semblait ne pas vouloir démarrer. Même après avoir vérifié que le démon Samba était configuré pour s'initialiser au démarrage. Donc, au lieu de passer tout mon temps à l'avance avec cela, j'ai simplement placé la ligne:

/etc/init.d/samba start

dans le /etc/rc.local script et Samba ont fonctionné comme un charme. Finalement, je reviendrais et dépannerais ce problème.

Dernières pensées

Linux est flexible. Linux est si flexible qu'il existe presque, inévitablement, de nombreuses façons de résoudre un seul problème. Le démarrage d'un service système est l'un de ces problèmes. Avec l'aide du /etc/init.d système (ainsi que /etc/rc.local ), vous pouvez être pratiquement assuré que votre service commencera.