In RHEL 5 e 6, stavamo utilizzando la funzione di avvio automatico di RHEL tramite /etc/rc.d/init.d per eseguire qualsiasi script all'avvio del sistema. A partire da RHEL 7 init viene sostituito da systemd e il metodo precedente è ora deprecato. C'è un altro modo in RHEL 7 per fare lo stesso.
Creazione dello script personalizzato
1. Creiamo prima uno script personalizzato di esempio da eseguire automaticamente all'avvio del 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. Verifica e verifica l'autorizzazione del file.
# ls -lrt /usr/local/sbin/myscript.sh
3. Aggiungi il permesso di esecuzione (se non è già impostato).
# chmod +x /var/tmp/test_script.sh
Creazione di una nuova unità di servizio systemd
Crea un nuovo file dell'unità di servizio in /etc/systemd/system/sample.service con il contenuto di seguito. Il nome dell'unità di servizio è definito dall'utente e può essere qualsiasi nome a tua scelta.
# 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
Ecco,
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
Abilita l'unità di servizio systemd
1. Ricarica il processo systemd per considerare sample.service appena creato OPPURE ogni volta che sample.service viene modificato.
# systemctl daemon-reload
2. Abilita questo servizio per l'avvio automatico dopo il riavvio.
# systemctl enable sample.service
3. Avvia il servizio.
# systemctl start sample.service
4. Riavvia l'host per verificare se gli script vengono avviati come previsto durante l'avvio del sistema.
# systemctl reboot