En primer lugar, una aclaración está en orden:
- init.d es el directorio que almacena los scripts de control de servicios, que controlan el inicio y la detención de servicios como
httpd
ocron
- rc.local es un servicio que permite ejecutar scripts arbitrarios como parte del proceso de inicio del sistema
En términos de si es mejor usar rc.local
o cron
ejecutar su script, sospecho que es más una cuestión de estética más que de practicidad. cron
, como programador de tareas, está pensado como un método para realizar tareas de mantenimiento o mantenimiento de una máquina, como verificar actualizaciones, limpiar cachés o realizar auditorías de seguridad. Esto no significa que se limite a realizar esas funciones, ya que puede ejecutar cualquier script o comando deseado en el momento especificado (como @reboot
).
El uso rc.local
, por otro lado, caería más dentro de un tipo de tarea de configuración del sistema, ya que rc.local
, al ser ejecutado por el sistema init de las máquinas, generalmente es responsable de establecer la configuración de red, los servicios o los entornos de las máquinas (pero nuevamente, no se limita a solo esta tarea).
Sin embargo, ambos puntos deberían atenuarse por el hecho de que no todos los sistemas init ofrecen un rc.local
mecanismo, y no todos los demonios cron ofrecen una @reboot
etiqueta psuedo.
Puntos extra
Como se mencionó, init.d
es el directorio que contiene los scripts que controlan los servicios que pueden iniciarse o detenerse en su sistema (al menos en máquinas que usan un SysV
sistema de tipo init). Dependiendo de su sistema init y el propósito de su script, puede ser razonable convertir su script en un script de inicio para que se ejecute de la misma manera que un servicio. Sin embargo, esto depende en gran medida de su sistema de inicio, ya que el marco que rodea la forma en que se construyen estos archivos puede diferir enormemente.
Ultima palabra
También debe tenerse en cuenta que, por lo general, los scripts de bash terminan con un sufijo en .sh
lugar de un .txt
, en lugar de un archivo de texto. Dicho esto, siempre que tenga un shebang ( #!/bin/bash
) en la parte superior del archivo o se llame como bash /path/to/script.whatever
, no debería importar en términos de ejecución del script.