/etc/init.d
viene mantenuto su Ubuntu per la retrocompatibilità con roba sysvinit. Se guardi effettivamente /etc/init.d/rc.local
vedrai (anche da un server 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
E "Esegui /etc/rc.local" è esattamente quello che fa. L'intero /etc/rc.local
è:
#!/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
Immagino che lo scopo di questo sia quello di fornire un posto semplice morto per mettere i comandi della shell che si desidera eseguire all'avvio, senza dover affrontare il servizio stop | start, che è in /etc/init.d/rc.local
.
Quindi è in realtà un servizio e può essere eseguito come tale. Ho aggiunto una echo
riga a /etc/rc.local
e:
»service rc.local start
hello world
Tuttavia, non credo che faccia riferimento a qualcosa nella /etc/init
directory di upstart (non init.d!):
»initctl start rc.local
initctl: Unknown job: rc.local
Ci sono alcuni servizi "rc" in upstart:
»initctl list | grep rc
rc stop/waiting
rcS stop/waiting
rc-sysinit stop/waiting
Ma nessuno di questi sembra avere nulla a che fare con rc.local.