Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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                     ---------------------------                 ---------------------------
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?

share|improve this question

migrated from Oct 29 '12 at 4:16

This question came from our site for system and network administrators.

up vote 1 down vote accepted

Many packages whose services were controlled using initscripts before they were ported to Upstart continue to ship an "initscript" in /etc/init.d/ which is actually a symbolic link to /lib/init/upstart-job which translates initscript syntax to approximately equivalent upstart syntax. On my system, for example, 51 of the 90 "initscripts" are actually symbolic links to /lib/init/upstart-job.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.