Conozca Linux: el directorio /etc/init.d

Si usa Linux, probablemente haya oído hablar del init.d directorio. Pero, ¿qué hace exactamente este directorio? En última instancia, hace una cosa, pero hace eso para todo su sistema, por lo que init.d es muy importante. los init.d El directorio contiene una serie de scripts de inicio / parada para varios servicios en su sistema. Todo de ácida a x11-común se controla desde este directorio. Por supuesto que no es tan sencillo.

Si miras el /etc directorio encontrará directorios que tienen el formato rc # .d (Donde # es un número refleja un nivel de inicialización específico, de 0 a 6). Dentro de cada uno de estos directorios hay varios otros scripts que controlan los procesos. Estos guiones comenzarán con una 'K' o una 'S'. Todos los scripts 'K' se ejecutan antes que los scripts 'S'. Y dependiendo de dónde estén ubicados los scripts, se determinará cuándo se inician. Entre los directorios, los servicios del sistema funcionan juntos como una máquina bien engrasada. Pero hay ocasiones en las que es necesario iniciar o detener un proceso de forma limpia y sin utilizar los comandos kill o killall. Ahí es donde el /etc/init.d El directorio es útil.



Ahora bien, si está utilizando una distribución como Fedora, puede encontrar este directorio en /etc/rc.d/init.d. Independientemente de la ubicación, tiene el mismo propósito.

Para controlar cualquiera de los scripts en init.d manualmente tienes que tener acceso root (o sudo). Cada secuencia de comandos se ejecutará como un comando y la estructura del comando se verá así:

/etc/init.d/command OPCIÓN

Dónde mando es el comando real para ejecutar y OPCIÓN puede ser uno de los siguientes:

  • comienzo
  • detener
  • recargar
  • reiniciar
  • forzar la recarga

La mayoría de las veces usará empezar, parar, o reiniciar. Entonces, si desea detener su red, puede emitir el comando:

/etc/init.d/networking stop

O si realiza un cambio en su red y necesita reiniciarla, puede hacerlo con el siguiente comando:

/etc/init.d/networking restart

Algunos de los scripts de inicio más comunes en este directorio son:

  • redes
  • samba
  • apache2
  • ftpd
  • sshd
  • palomar
  • mysql

Por supuesto, puede haber scripts de uso más frecuente en su directorio, depende de lo que haya instalado. La lista anterior se tomó de una instalación de Ubuntu Server 8.10, por lo que una instalación de escritorio estándar tendría menos scripts de red.

Pero ¿qué pasa con /etc/rc.local?

Hay una tercera opción que solía usar bastante. Esta opción es la /etc/rc.local guión. Este archivo se ejecuta después de que se hayan ejecutado todos los demás scripts de nivel de inicio, por lo que es seguro colocar varios comandos que desea que se emitan al inicio. Muchas veces colocaré instrucciones de montaje para cosas como nfs en este script. Este también es un buen lugar para colocar los scripts de 'resolución de problemas'. Por ejemplo, una vez tuve una máquina que, por alguna razón, Samba parecía no querer arrancar. Incluso después de verificar para asegurarse de que el demonio Samba se configuró para inicializarse al arrancar. Entonces, en lugar de pasar todo mi tiempo por adelantado con esto, simplemente coloqué la línea:

/etc/init.d/samba start

en el /etc/rc.local El guión y la samba funcionaron a la perfección. Eventualmente volvería y solucionaría este problema.

Pensamientos finales

Linux es flexible. Linux es tan flexible que casi, inevitablemente, existen numerosas formas de resolver un solo problema. Iniciar un servicio del sistema es uno de esos problemas. Con la ayuda del /etc/init.d sistema (así como /etc/rc.local) puede estar seguro de que su servicio comenzará.