What is the current state of Ubuntu's transition from init scripts to Upstart?

Posted by Adam Eberlin on Ask Ubuntu See other posts from Ask Ubuntu or by Adam Eberlin
Published on 2012-10-29T03:32:12Z Indexed on 2012/10/29 5:22 UTC
Read the original article Hit count: 450

Filed under:
|
|

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?

© Ask Ubuntu or respective owner

Related posts about 12.04

Related posts about init.d