Acho que posso entender um pouco mais depois de fazer algumas pesquisas no Ubuntu e também pesquisando coisas. Todos os serviços não foram portados para o Upstart.
ls -l /etc/init.d/
O comando acima lista todos os arquivos, mas estamos interessados em alguns.
-rwxr-xr-x 1 root root 7621 Feb 6 2012 apache2
-rwxr-xr-x 1 root root 1511 Oct 17 2011 atftpd
lrwxrwxrwx 1 root root 21 Sep 14 10:57 isc-dhcp-server -> /lib/init/upstart-job
Como você pode ver, o apache2 e o atftpd ainda não foram convertidos para o Upstart enquanto o isc-dhcp-server tinha. Vamos listar arquivos em outro diretório.
ls -l /etc/init
Novamente, muitos arquivos são listados, mas estamos interessados em apenas um:
-rw-r--r-- 1 root root 1704 Sep 14 10:56 isc-dhcp-server.conf
Isso confirma que o isc-dhcp-server foi convertido para o Upstart, mas o apache2 e o atftpd não.
Mas agora a questão é se devemos usar os antigos comandos invoke-rc.d ou /etc/init.d / para iniciar / parar / etc. serviços, ou use o comando service , ou use o comando initctl (Upstart)? A resposta que eu entendo melhor é sempre usar o comando service . Com base em como os arquivos init são configurados em /etc/init.d/, service usará o initctl (ou start ou stop ) para serviços convertidos para Upstart e usar os mais antigos /etc/init.d / para serviços que não foram convertidos. Como usuários, não precisamos nos preocupar e sempre usar serviço . Disclaimer: Eu testei isso apenas no Ubuntu 12.04.