Dans RHEL 5 et 6, nous utilisions la fonction de démarrage automatique de RHEL via /etc/rc.d/init.d pour exécuter n'importe quel script au démarrage du système. À partir de RHEL 7, init est remplacé par systemd et la méthode précédente est désormais obsolète. Il existe un autre moyen dans RHEL 7 de faire la même chose.
Création du script personnalisé
1. Commençons par créer un exemple de script personnalisé à exécuter automatiquement au démarrage du système.
# 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. Vérifiez et vérifiez l'autorisation du fichier.
# ls -lrt /usr/local/sbin/myscript.sh
3. Ajoutez une autorisation d'exécution (si elle n'est pas déjà définie).
# chmod +x /var/tmp/test_script.sh
Création d'une nouvelle unité de service systemd
Créez un nouveau fichier d'unité de service dans /etc/systemd/system/sample.service avec le contenu ci-dessous. Le nom de l'unité de service est défini par l'utilisateur et peut être n'importe quel nom de votre choix.
# 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
Ici,
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
Activer l'unité de service systemd
1. Rechargez le processus systemd pour prendre en compte sample.service nouvellement créé OU chaque fois que sample.service est modifié.
# systemctl daemon-reload
2. Activez ce service pour qu'il démarre automatiquement après le redémarrage.
# systemctl enable sample.service
3. Démarrez le service.
# systemctl start sample.service
4. Redémarrez l'hôte pour vérifier si les scripts démarrent comme prévu lors du démarrage du système.
# systemctl reboot