GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment exécuter des scripts/commandes à l'aide de /etc/rc.d/rc.local dans CentOS/RHEL 7

Le problème

Les scripts/commandes dans le fichier de configuration /etc/rc.d/rc.local ne pouvait pas fonctionner au démarrage dans un système CentOS/RHEL 7. La même chose fonctionnait dans les versions antérieures de CentOS/RHEL. Est-ce obsolète ou existe-t-il une solution pour continuer à utiliser cette méthode ?

La réponse

Le rc.local Le service est arrêté par défaut dans CentOS/RHEL 7. Si vous vérifiez le fichier de configuration etc/rc.d/rc.local, il y a des indices à ce sujet.

# cat /etc/rc.d/rc.local 
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.

touch /var/lock/subsys/local

La solution de contournement

1. Avec systemd , les scripts d'initialisation ne sont plus là. Par conséquent, l'exécution des tâches au démarrage devait changer. Dans CentOS/RHEL 7, le fichier /etc/rc.d/rc.local est contrôlé par le service rc-local.

...
[Unit]
Description=/etc/rc.d/rc.local Compatibility
ConditionFileIsExecutable=/etc/rc.d/rc.local
After=network.target

[Service]
Type=forking
ExecStart=/etc/rc.d/rc.local start
TimeoutSec=0
RemainAfterExit=yes

2. Par défaut, le fichier /etc/rc.d/rc.local n'a pas la permission d'exécution. Veuillez ajouter les autorisations d'exécution à ce fichier.

# ls -l /etc/rc.d/rc.local
-rw-r--r--. 1 root root 473 Nov  8 00:20 /etc/rc.d/rc.local
# chmod +x /etc/rc.d/rc.local
# ls -l /etc/rc.d/rc.local
-rwxr-xr-x. 1 root root 473 Nov  8 00:20 /etc/rc.d/rc.local

3. Activez le service rc.local pour vous assurer qu'il démarre à chaque fois après un redémarrage.

# systemctl enable rc-local

Confirmez si le service est activé :

# systemctl status rc-local.service

3. Ensuite, veuillez démarrer le rc-local services.

# systemctl start rc-local


Cent OS
  1. Comment créer un référentiel YUM local sur CentOS 7 / RHEL 7 à l'aide d'un DVD

  2. CentOS / RHEL 7 :Comment synchroniser chrony avec l'horloge locale

  3. Comment systemd-tmpfiles nettoie /tmp/ ou /var/tmp (remplacement de tmpwatch) dans CentOS / RHEL 7

  4. Comment récupérer à partir d'une entrée racine supprimée dans les fichiers /etc/shadow et/ou /etc/passwd dans CentOS / RHEL 6

  5. CentOS / RHEL :Comment enregistrer toutes les commandes LVM

Comment installer Flameshot sur RHEL/CentOS à l'aide de Snapcraft

Comment installer osTicket sur CentOS 8 / RHEL 8

CentOS / RHEL 7 :Comment récupérer à partir d'une entrée root supprimée dans les fichiers /etc/shadow et/ou /etc/passwd

Comment envoyer des journaux d'audit au serveur Rsyslog distant dans CentOS/RHEL 6,7

Comment récupérer à partir d'un fichier /etc/mtab corrompu ou vide dans CentOS/RHEL 7

Comment mettre sur liste noire un disque local à l'aide de la directive "find_multipaths" dans CentOS/RHEL 6