Qual é o estado atual da transição do Ubuntu dos scripts init para o Upstart?

1

Qual é o estado atual da transição do Ubuntu de init.d scripts para upstart ? Fiquei curioso, então comparei o conteúdo de /etc/init.d/ to /etc/init/ em uma de nossas máquinas de desenvolvimento, que está executando o 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

Para ser honesto, não tenho certeza se estou interpretando adequadamente a divisão de responsabilidades, pois não esperava ver nenhuma sobreposição (de qual estrutura lida com quais serviços). Por isso fiquei bastante surpreso ao saber que havia uma quantidade significativa de sobreposição nas referências de serviço, além de ser incapaz de discernir qual das duas se destinava a ser a estrutura de serviço principal.

  • Por que parece haver uma boa quantidade de redundância no tratamento individual de serviços entre init.d e upstart ? Há algo mais em jogo aqui que está faltando?

  • O que impede que upstart assuma completamente init.d ? Existe alguma funcionalidade que determinados daemons exigem que upstart ainda não possui, que estão impedindo a conversão de alguns serviços? Ou é algo completamente diferente?

por Adam Eberlin 29.10.2012 / 04:32

1 resposta

1

Muitos pacotes cujos serviços foram controlados usando initscripts antes de serem portados para o Upstart continuam a enviar um "initscript" em /etc/init.d/ que é na verdade um link simbólico para / lib / init / upstart-job que traduz o script sintaxe para sintaxe upstart aproximadamente equivalente. No meu sistema, por exemplo, 51 dos 90 "initscripts" são na verdade links simbólicos para / lib / init / upstart-job.

    
por jdthood 29.10.2012 / 08:20