Creo que leí algo hace un tiempo sobre esto, pero no recuerdo cómo se hizo. Básicamente, tengo un servicio en el /etc/init.d
que me gustaría iniciar automáticamente en el momento del arranque. Recuerdo que tiene algo que ver con vincular el script al /etc/rc.d
directorio, pero no puedo recordarlo en este momento. ¿Cuál es el comando para esto?
Creo que estoy en un derivado de Fedora / CentOS.
fedora
boot
init-script
Naftuli Kay
fuente
fuente
/etc/init
,/etc/init.d
,/etc/rc.d
,/etc/rc.local
y algunos más tiene?Respuestas:
Si está en un sistema basado en Red Hat, como mencionó, puede hacer lo siguiente:
/etc/init.d
(por ejemplo/etc/init.d/myscript
). El script debe tener el siguiente formato:El formato es bastante estándar y puede ver los scripts existentes en
/etc/init.d
. A continuación, puede usar el script como/etc/init.d/myscript start
ochkconfig myscript start
. Lackconfig
página del manual explica el encabezado del script:El código de inicio, detención y estado de ejemplo utiliza funciones auxiliares definidas en
/etc/init.d/functions
Habilita el script
Verifique que el script esté habilitado; debería ver "on" para los niveles que seleccionó.
fuente
Usted prueba, en qué nivel de ejecución normalmente comienza su máquina.
A menudo esto es 5 o 2, hay varias convenciones, pero nada realmente establecido, afaik. Ubuntu usa 2, mientras que la distribución anterior que usaba siempre usaba
Luego haces un enlace simbólico desde tu script de inicio, tal vez
/etc/init.d/foobar
para/etc/rc2.d/SXYfoobar
S significa 'Iniciar este script en este nivel de ejecución (aquí: 2). XY es un número decimal de dos dígitos, que es relevante para la secuencia, se inician los scripts.
Si depende de que el script S45barfoo se ejecute antes que usted, y S55foofoo depende de su script, elegiría xy entre 45 y 55. Para números iguales, el orden de arranque no está definido.
Mientras tanto, Ubuntu cambió (está cambiando) a otro procedimiento de inicio, llamado
upstart
.Y tenga en cuenta: no siempre los enlaces enlazan a
/etc/rcX.d
veces, es/etc/init/rcX.d
algo similar, pero debería ser fácil de encontrar, en algún lugar debajo de / etc.Si desea iniciar algo al final de los scripts de inicio,
/etc/rc.local
sería un archivo para buscar, pero si depende de que X11 ya se esté ejecutando, puede buscar una opción de inicio automático de su entorno de escritorio, o/etc/X11/Xsession.d/
con un patrón similar al descrito encima.Si depende de que la red esté activa, hay un directorio separado (if-up.d) y para dispositivos montados como unidades USB externas
/etc/udev/rules.d/
.fuente
update-rc.d
?Como Naftuli Tzvi Kay preguntó sobre Debian arriba: a partir de Debian 6, su script debe contener un encabezado LSB (Base de estándares de Linux) que indique sus dependencias y capacidades ( consulte la página wiki de Debian ).
Si hay un encabezado LSB, puede usarlo
insserv
para incluir su script en el proceso de arranque ( vea otra página wiki de Debian ).fuente