/etc/init.d
jest utrzymywany na Ubuntu dla wstecznej kompatybilności z sysvinit. Jeśli naprawdę na /etc/init.d/rc.local
to spojrzysz , zobaczysz (także z serwera LTS 12.04):
#! /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
A „Run /etc/rc.local” jest dokładnie tym, co robi. Całość /etc/rc.local
to:
#!/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
Sądzę, że celem tego jest zapewnienie prostego miejsca do umieszczania poleceń powłoki, które chcesz uruchamiać podczas rozruchu, bez konieczności zajmowania się usługami stop | start, które są dostępne /etc/init.d/rc.local
.
Jest to więc usługa i może być uruchomiona jako taka. Dodałem echo
wiersz /etc/rc.local
i:
»service rc.local start
hello world
Jednak nie sądzę, aby coś o tym wspominało w /etc/init
katalogu upstart (nie init.d!):
»initctl start rc.local
initctl: Unknown job: rc.local
W fazie upstart jest kilka usług „rc”:
»initctl list | grep rc
rc stop/waiting
rcS stop/waiting
rc-sysinit stop/waiting
Ale żaden z nich nie wydaje się mieć nic wspólnego z rc.local.