/etc/init.d
é mantido no ubuntu para compatibilidade com versões anteriores do sysvinit. Se você realmente olhar, /etc/init.d/rc.local
verá (também de um servidor 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 "Executar /etc/rc.local" é exatamente o que ele faz. A totalidade /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
Eu acho que o objetivo disso é fornecer um local simples e simples para colocar os comandos do shell que você deseja executar na inicialização, sem precisar lidar com o material de serviço stop | start, que está dentro /etc/init.d/rc.local
.
Portanto, é de fato um serviço e pode ser executado como tal. Eu adicionei uma echo
linha para /etc/rc.local
e:
»service rc.local start
hello world
No entanto, eu não acredito que seja referenciado por qualquer coisa no /etc/init
diretório do iniciante (não init.d!):
»initctl start rc.local
initctl: Unknown job: rc.local
Existem alguns serviços "rc" no inicio:
»initctl list | grep rc
rc stop/waiting
rcS stop/waiting
rc-sysinit stop/waiting
Mas nenhum deles parece ter algo a ver com rc.local.