Los servicios más conocidos en Linux se pueden añadir en el arranque sin problemas, porque la mayoría de ellos vienen con su propio script, que se hace usando los comandos ‘chkconfig’ y ‘systemctl’.
Por ejemplo, para añadir el servicio ‘Apache httpd’ en el arranque, ejecute uno de los siguientes comandos basado en su gestor de sistema. Del mismo modo se puede añadir cualquier servicio bien conocido como se requiere en el arranque.
Para el sistema Sys V init:
# chkconfig --level 35 httpd on
Para el sistema systemd:
# systemctl enable httpd
A veces es posible que tenga que añadir un script personalizado o comando o servicio en el inicio / arranque. Si es así, ¿cómo lo haces?
En este artículo, vamos a entender cómo utilizar los siguientes tres métodos para implementarlo:
- Usando el archivo /etc/rc.d/rc.local
- Usando el archivo crontab
- unidad de servicio systemd
Método-1: Usando el archivo /etc/rc.d/rc.local
El archivo «/etc/rc.local» se ejecuta tradicionalmente después de que se hayan iniciado todos los servicios normales del ordenador al final del proceso de cambio a un nivel de ejecución multiusuario.
Este método también funciona en el sistema systemd, y es necesario añadir la ubicación de su script al archivo ‘/etc/rc.d/rc.local’ para que se ejecute en el arranque.
Asegúrese de que el archivo tiene permiso de ejecución.
# chmod +x /etc/rc.d/rc.local
Para entender esto en detalle, crearemos un sencillo script como el que se muestra a continuación, pero puedes crear cualquier script según sea necesario:
# vi /opt/scripts/run-script-on-boot.sh#!/bin/bashdate > /root/on-boot-output.txthostname > /root/on-boot-output.txt
Una vez que el script esté listo, establece el permiso de ejecución como se muestra a continuación:
# chmod +x /opt/scripts/run-script-on-boot.sh
Finalmente agregue el script al final del archivo:
# vi /etc/rc.d/rc.local/opt/scripts/run-script-on-boot.sh
Reinicie su sistema para verificar esto:
# reboot
Método-2: Usando el archivo crontab
cron ejecuta trabajos programados automáticamente en el backend a una hora específica.
Esto puede lograrse fácilmente usando una cadena especial llamada "@reboot"
con el trabajo cron.
@reboot es una cadena especial y permite al usuario ejecutar cualquier comando o script al inicio (tiempo de arranque).
Este ejemplo ejecuta el archivo ‘/opt/scripts/run-script-on-boot.sh’ en el reinicio del sistema.
Utilizaremos el mismo script que se creó en el ejemplo anterior. Para ello, basta con añadir la siguiente entrada en el archivo crontab:
# crontab -e@reboot /opt/scripts/run-script-on-boot.sh
Reinicie su sistema para comprobarlo:
# reboot
Método-3: Usar la unidad de servicio systemd
Este método sólo funciona en el sistema systemd y es muy sencillo.
Para ello, es necesario crear un script de inicio de systemd y colocarlo en el directorio «/etc/systemd/system/».
Este es nuestro ejemplo de script de unidad de inicio de systemd:
# vi sample-on-boot-script.serviceDescription=Run a Custom Script at StartupAfter=default.targetExecStart=/opt/scripts/run-script-on-boot.shWantedBy=default.target
Una vez que coloque el script de unidad en la ubicación de systemd, ejecute el siguiente comando para actualizar los archivos de configuración de systemd y habilitar el servicio:
# systemctl daemon-reload# systemctl enable sample-on-boot-script.service
Reinicie su sistema para comprobarlo:
# reboot
Consejos de bonificación:
Si desea ejecutar un script en segundo plano, debe añadir el símbolo de ampersand al final "&"
.
/Path/To/My_Script &
Si desea ejecutar el comando como un usuario diferente, utilice el siguiente formato:
su - $USER -c /Path/To/My_Script
Conclusión
Este tutorial discute brevemente cómo agregar un script personalizado o comando o servicio en el inicio.