Linux/Debian 9 rc local

De GeRgOsNet

Depuis la version 9 de Debian (Stretch), le script de démarrage rc.local n'existe plus. Je vous propose dans cet article une solution de contournement en utilisant Systemctl.

Solution

Version : Debian 9 Stretch

  • Se connecter en SSH sur le serveur sur lequel vous souhaitez ajouter le script rc.local

/!\ Attention /!\ les commandes qui vont suivre doivent être exécutées avec les autorisations root

  • Créer le fichier suivant /etc/systemd/system/rc-local.service
nano /etc/systemd/system/rc-local.service
  • Copier le code suivant dans le fichier créé précédemment
[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99

[Install]
WantedBy=multi-user.target
  • Créer le fichier /etc/rc.local
nano /etc/rc.local
  • Ajouter le code suivant dans le nouveau fichier rc.local que vous venez de créer. Ajouter éventuellement les commandes que vous souhaitez exécuter au démarrage de votre serveur (avant la ligne exit 0)
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

exit 0
  • Ajouter l'autorisation d’exécution au script /etc/rc.local créer précédemment
chmod +x /etc/rc.local
  • Finalement, activer le nouveau service rc-local au démarrage de votre serveur
systemctl enable rc-local

Désormais, lorsque votre serveur Linux va démarrer, le script rc.local que vous venez de créer sera exécuté.