/etc/init.d
est maintenu sur ubuntu pour une compatibilité ascendante avec les choses sysvinit. Si vous regardez réellement, /etc/init.d/rc.local
vous verrez (également à partir d'un serveur 12.04 LTS):
#! /bin/sh
### BEGIN INIT INFORMATION
# Provides: rc.local
# Required-Start: $remote_fs $syslog $all
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop:
# Short-Description: Run /etc/rc.local if it exist
### END INIT INFO
Et "Exécuter /etc/rc.local" est exactement ce qu'il fait. L'intégralité de /etc/rc.local
est:
#!/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
J'imagine que le but en faisant cela est de fournir un endroit simple et mort pour mettre les commandes shell que vous voulez exécuter au démarrage, sans avoir à gérer le service stop | start, qui est dans /etc/init.d/rc.local
.
Il s'agit donc en fait d'un service, et peut être exécuté en tant que tel. J'ai ajouté une echo
ligne à /etc/rc.local
et:
»service rc.local start
hello world
Cependant, je ne pense pas qu'il soit référencé par quoi que ce soit dans le /etc/init
répertoire upstart (pas init.d!):
»initctl start rc.local
initctl: Unknown job: rc.local
Il y a quelques services "rc" dans upstart:
»initctl list | grep rc
rc stop/waiting
rcS stop/waiting
rc-sysinit stop/waiting
Mais aucun de ceux-ci ne semble avoir quoi que ce soit à voir avec rc.local.