En RHEL 5 y 6, usábamos la función de inicio automático de RHEL a través de /etc/rc.d/init.d para ejecutar cualquier secuencia de comandos en el arranque del sistema. Comenzando con RHEL 7, init se reemplaza por systemd y el método anterior ahora está obsoleto. Hay otra forma en RHEL 7 de hacer lo mismo.
Crear el script personalizado
1. Primero vamos a crear un script personalizado de muestra para que se ejecute automáticamente al arrancar el sistema.
# vi /var/tmp/test_script.sh #!/bin/bash echo "This is a sample script to test auto run during boot" > /var/tmp/script.out echo "The time the script run was --> `date`" >> /var/tmp/script.out
2. Compruebe y verifique el permiso del archivo.
# ls -lrt /usr/local/sbin/myscript.sh
3. Agregue el permiso de ejecución (si aún no está configurado).
# chmod +x /var/tmp/test_script.sh
Creando nueva unidad de servicio systemd
Cree un nuevo archivo de unidad de servicio en /etc/systemd/system/sample.service con el contenido a continuación. El nombre de la unidad de servicio lo define el usuario y puede ser cualquier nombre de su elección.
# vi /etc/systemd/system/sample.service [Unit] Description=Description for sample script goes here After=network.target [Service] Type=simple ExecStart=/var/tmp/test_script.sh TimeoutStartSec=0 [Install] WantedBy=default.target
Aquí,
After= : If the script needs any other system facilities (networking, etc), modify the [Unit] section to include appropriate After=, Wants=, or Requires= directives. Type= : Switch Type=simple for Type=idle in the [Service] section to delay execution of the script until all other jobs are dispatched WantedBy= : target to run the sample script in
Habilitar la unidad de servicio systemd
1. Vuelva a cargar el proceso systemd para considerar sample.service recién creado O cada vez que se modifique sample.service.
# systemctl daemon-reload
2. Habilite este servicio para que se inicie después de reiniciar automáticamente.
# systemctl enable sample.service
3. Inicie el servicio.
# systemctl start sample.service
4. Reinicie el host para verificar si los scripts se inician como se esperaba durante el inicio del sistema.
# systemctl reboot