Bash Script en el inicio? (Linux)

12

¿Hay alguna manera de hacer / ejecutar un script bash al reiniciar (como en Debian / Ubuntu, por ejemplo, ya que eso es lo que tienen mis 2 cajas en casa)

Además, ¿alguna guía recomendada para hacer trabajos cron? Soy completamente nuevo para ellos (pero serán de gran utilidad)

msmith1114
fuente

Respuestas:

21

En Ubuntu / Debian / Centos puede configurar un trabajo cron para ejecutar @reboot. Esto se ejecuta una vez al inicio del sistema. Use crontab -e para editar el crontab y agregue una línea como el ejemplo a continuación, por ejemplo

@reboot /path/to/some/script 

Hay muchos recursos para cron si los busca. Este sitio tiene varios buenos ejemplos.


fuente
7

Otra forma típica de iniciar algo en el arranque en muchas plataformas * nix es (o creo que esto puede estar empezando a perder el favor: ver alternativas ) para colocar scripts en un directorio que, dependiendo del sistema operativo / distribución particular, podría ser algo así como /etc/rc2.d, /etc/rc3.d, /etc/rc/rc3.d, o similares (diferentes distribuciones usan diferentes "niveles de ejecución", que es donde el número proviene de - ver el enlace más abajo). Con frecuencia, estos también están enlazados simbólicamente en o desde archivos /etc/init.d, para una ejecución más fácil a mano, y toman un argumento de "inicio" y / o "detención" en la mayoría de las plataformas * nix, y también "estado", "reinicio", etc. en muchas plataformas de Linux. En tales sistemas, estos generalmente son ejecutados por init,inittab. En los sistemas * BSD, hay un estilo diferente de un concepto similar y, como se vincula anteriormente, hay muchas variaciones.

En el estilo anterior, los scripts en, por ejemplo, /etc/rc2.d(para un sistema con un nivel de ejecución predeterminado de 2) generalmente comienzan con la letra So K, y luego con un número de dos dígitos. Las secuencias de comandos que comienzan con S se ejecutan en orden lexicográfico (que se traduce, generalmente, en orden numérico) al arrancar, en el nivel 2, con un argumento de "inicio". Al cerrar, los scripts con el prefijo K se ejecutan de manera similar, con un argumento de "stop".

Los archivos en /etc/init.d(o algunas veces /etc/rc/init.d, u otras variaciones) se nombran sin los prefijos S y K, o los números numéricos. Típicamente, los archivos en los diversos directorios /etc/rc?.d enlazan simbólicamente a los archivos reales, a menudo referenciados a través del prefijo de ruta relativa ../init.d/.

Existen varias utilidades en varios sistemas para administrar esto, también, encender y apagar cosas, etc. En IRIX (desde IRIX 4, al menos, si mi memoria funciona), solía ser una herramienta llamada chkconfig, que no manipula los enlaces, pero que serían revisados ​​por los scripts para ver si deberían ejecutarse o no. Creo que IRIX fue el primer sistema operativo en tener algo como esto. Más tarde, en alguna versión de RedHat que solía tener, había una herramienta con el mismo nombre, pero se comportó de manera un poco diferente, en realidad administrando los enlaces simbólicos: vea chkconfig(8)lo que creo que es la misma versión (o muy similar) como solía entonces

En un sistema Ubuntu 9.04 al que tengo acceso, parece que update-rc.des el script para ejecutar.

Si estás en un sistema que utiliza Inittab, también se puede añadir cosas directamente allí - que puede ser especialmente útil para las cosas que desea ejecutar no sólo una vez en el arranque, pero para tener un seguimiento activo (por init) que respawnsi alguna vez chocar o terminar. Vea el resultado de man inittab(si lo tiene) en su sistema para obtener información adicional. Y / o man init, etc. Hay muchos sabores diferentes, y no estoy (actualmente) terriblemente familiarizado con Debian o Ubuntu, así que no estoy seguro exactamente a qué apuntarle, pero espero que esto le brinde algunos puntos de partida .

la sección @reboot en crontob es nueva para mí, pero también parece que podría ser una opción útil, aunque sugeriría que los guiones de inicio sean preferibles para muchas cosas. Pero vea man 5 crontabmucha más información sobre lo que puede poner en su configuración cron, y cómo se le puede pedir que ejecute las cosas, y cuándo (incluyendo, asumiendo una versión Vixie / ISC de cron [vea el historial cron ] con @reboot).

Espero que sea útil.

lindes
fuente