What is the current state of Ubuntu's transition from init scripts to Upstart? [migrated]
- by Adam Eberlin
What is the current state of Ubuntu's transition from init.d scripts to upstart? I was curious, so I compared the contents of /etc/init.d/ to /etc/init/ on one of our development machines, which is running Ubuntu 12.04 LTS Server.
# /etc/init.d/ # /etc/init/
acpid acpid.conf
apache2 ---------------------------
apparmor ---------------------------
apport apport.conf
atd atd.conf
bind9 ---------------------------
bootlogd ---------------------------
cgroup-lite cgroup-lite.conf
--------------------------- console.conf
console-setup console-setup.conf
--------------------------- container-detect.conf
--------------------------- control-alt-delete.conf
cron cron.conf
dbus dbus.conf
dmesg dmesg.conf
dns-clean ---------------------------
friendly-recovery ---------------------------
--------------------------- failsafe.conf
--------------------------- flush-early-job-log.conf
--------------------------- friendly-recovery.conf
grub-common ---------------------------
halt ---------------------------
hostname hostname.conf
hwclock hwclock.conf
hwclock-save hwclock-save.conf
irqbalance irqbalance.conf
killprocs ---------------------------
lxc lxc.conf
lxc-net lxc-net.conf
module-init-tools module-init-tools.conf
--------------------------- mountall.conf
--------------------------- mountall-net.conf
--------------------------- mountall-reboot.conf
--------------------------- mountall-shell.conf
--------------------------- mounted-debugfs.conf
--------------------------- mounted-dev.conf
--------------------------- mounted-proc.conf
--------------------------- mounted-run.conf
--------------------------- mounted-tmp.conf
--------------------------- mounted-var.conf
networking networking.conf
network-interface network-interface.conf
network-interface-container network-interface-container.conf
network-interface-security network-interface-security.conf
newrelic-sysmond ---------------------------
ondemand ---------------------------
plymouth plymouth.conf
plymouth-log plymouth-log.conf
plymouth-splash plymouth-splash.conf
plymouth-stop plymouth-stop.conf
plymouth-upstart-bridge plymouth-upstart-bridge.conf
postgresql ---------------------------
pppd-dns ---------------------------
procps procps.conf
rc rc.conf
rc.local ---------------------------
rcS rcS.conf
--------------------------- rc-sysinit.conf
reboot ---------------------------
resolvconf resolvconf.conf
rsync ---------------------------
rsyslog rsyslog.conf
screen-cleanup screen-cleanup.conf
sendsigs ---------------------------
setvtrgb setvtrgb.conf
--------------------------- shutdown.conf
single ---------------------------
skeleton ---------------------------
ssh ssh.conf
stop-bootlogd ---------------------------
stop-bootlogd-single ---------------------------
sudo ---------------------------
--------------------------- tty1.conf
--------------------------- tty2.conf
--------------------------- tty3.conf
--------------------------- tty4.conf
--------------------------- tty5.conf
--------------------------- tty6.conf
udev udev.conf
udev-fallback-graphics udev-fallback-graphics.conf
udev-finish udev-finish.conf
udevmonitor udevmonitor.conf
udevtrigger udevtrigger.conf
ufw ufw.conf
umountfs ---------------------------
umountnfs.sh ---------------------------
umountroot ---------------------------
--------------------------- upstart-socket-bridge.conf
--------------------------- upstart-udev-bridge.conf
urandom ---------------------------
--------------------------- ureadahead.conf
--------------------------- ureadahead-other.conf
--------------------------- wait-for-state.conf
whoopsie whoopsie.conf
To be honest, I'm not entirely sure if I'm interpreting the division of responsibilities properly, as I didn't expect to see any overlap (of what framework handles which services). So I was quite surprised to learn that there was a significant amount of overlap in service references, in addition to being unable to discern which of the two was intended to be the primary service framework.
Why does there seem to be a fair amount of redundancy in individual service handling between init.d and upstart? Is something else at play here that I'm missing?
What is preventing upstart from completely taking over for init.d? Is there some functionality that certain daemons require which upstart does not yet have, which are preventing some services from converting? Or is it something else entirely?