/etc/init.d
wird aus Gründen der Abwärtskompatibilität mit Sysvinit-Inhalten auf Ubuntu gepflegt. Wenn Sie sich das anschauen, werden /etc/init.d/rc.local
Sie sehen (auch von einem 12.04 LTS Server):
#! /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
Und "Run /etc/rc.local" ist genau das, was es tut. Die Gesamtheit von /etc/rc.local
ist:
#!/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
Ich vermute, der Zweck dabei ist, einen absolut einfachen Ort zu bieten, an dem Shell-Befehle, die Sie beim Booten ausführen möchten, abgelegt werden können, ohne sich mit dem Stop-Start-Service-Zeug befassen zu müssen, das sich in befindet /etc/init.d/rc.local
.
Es handelt sich also tatsächlich um einen Dienst, der als solcher ausgeführt werden kann. Ich habe eine echo
Zeile hinzugefügt zu /etc/rc.local
und:
»service rc.local start
hello world
Ich glaube jedoch nicht, dass es von irgendetwas im /etc/init
Verzeichnis von upstart (not init.d!) Referenziert wird :
»initctl start rc.local
initctl: Unknown job: rc.local
Es gibt ein paar "rc" -Dienste in upstart:
»initctl list | grep rc
rc stop/waiting
rcS stop/waiting
rc-sysinit stop/waiting
Aber keine davon scheint irgendetwas mit rc.local zu tun zu haben.