Aventuras no Debian 8 (I)

Agora que o Debian conta com um init moderno, decidi usá-lo por um tempo para voltar a sentir uma distribuição baseada em DEB, o que não faço desde muito tempo quando larguei o Ubuntu e migrei para o Fedora e depois openSUSE.

Instalação padrão usando o GNOME.

Como esperado, várias inutilidades iniciadas por padrão. Que sina...

# systemctl disable atd.service exim4.service gdomap.service minissdpd.service networking.service nfs-common.service pppd-dns.service rpcbind.service saned.service speech-dispatcher.service
Synchronizing state for atd.service with sysvinit using update-rc.d...
Executing /usr/sbin/update-rc.d atd defaults
Executing /usr/sbin/update-rc.d atd disable
insserv: warning: current start runlevel(s) (empty) of script `atd' overrides LSB defaults (2 3 4 5).
insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script `atd' overrides LSB defaults (0 1 6).
Synchronizing state for exim4.service with sysvinit using update-rc.d...
Executing /usr/sbin/update-rc.d exim4 defaults
Executing /usr/sbin/update-rc.d exim4 disable
insserv: warning: current start runlevel(s) (empty) of script `exim4' overrides LSB defaults (2 3 4 5).
insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script `exim4' overrides LSB defaults (0 1 6).
Synchronizing state for gdomap.service with sysvinit using update-rc.d...
Executing /usr/sbin/update-rc.d gdomap defaults
Executing /usr/sbin/update-rc.d gdomap disable
insserv: warning: current start runlevel(s) (empty) of script `gdomap' overrides LSB defaults (2 3 4 5).
insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script `gdomap' overrides LSB defaults (0 1 6).
Synchronizing state for minissdpd.service with sysvinit using update-rc.d...
Executing /usr/sbin/update-rc.d minissdpd defaults
Executing /usr/sbin/update-rc.d minissdpd disable
insserv: warning: current start runlevel(s) (empty) of script `minissdpd' overrides LSB defaults (2 3 4 5).
insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script `minissdpd' overrides LSB defaults (0 1 6).
Synchronizing state for networking.service with sysvinit using update-rc.d...
Executing /usr/sbin/update-rc.d networking defaults
Executing /usr/sbin/update-rc.d networking disable
insserv: warning: current start runlevel(s) (empty) of script `networking' overrides LSB defaults (S).
insserv: warning: current stop runlevel(s) (0 6 S) of script `networking' overrides LSB defaults (0 6).
Synchronizing state for nfs-common.service with sysvinit using update-rc.d...
Executing /usr/sbin/update-rc.d nfs-common defaults
Executing /usr/sbin/update-rc.d nfs-common disable
insserv: warning: current start runlevel(s) (empty) of script `nfs-common' overrides LSB defaults (S).
insserv: warning: current stop runlevel(s) (0 1 6 S) of script `nfs-common' overrides LSB defaults (0 1 6).
Synchronizing state for pppd-dns.service with sysvinit using update-rc.d...
Executing /usr/sbin/update-rc.d pppd-dns defaults
Executing /usr/sbin/update-rc.d pppd-dns disable
insserv: warning: current start runlevel(s) (empty) of script `pppd-dns' overrides LSB defaults (S).
insserv: warning: current stop runlevel(s) (S) of script `pppd-dns' overrides LSB defaults (empty).
Synchronizing state for rpcbind.service with sysvinit using update-rc.d...
Executing /usr/sbin/update-rc.d rpcbind defaults
Executing /usr/sbin/update-rc.d rpcbind disable
insserv: warning: current start runlevel(s) (empty) of script `rpcbind' overrides LSB defaults (S).
insserv: warning: current stop runlevel(s) (0 1 6 S) of script `rpcbind' overrides LSB defaults (0 1 6).
Synchronizing state for saned.service with sysvinit using update-rc.d...
Executing /usr/sbin/update-rc.d saned defaults
Executing /usr/sbin/update-rc.d saned disable
insserv: warning: current start runlevel(s) (empty) of script `saned' overrides LSB defaults (2 3 4 5).
insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script `saned' overrides LSB defaults (0 1 6).
Synchronizing state for speech-dispatcher.service with sysvinit using update-rc.d...
Executing /usr/sbin/update-rc.d speech-dispatcher defaults
Executing /usr/sbin/update-rc.d speech-dispatcher disable
insserv: warning: current start runlevel(s) (empty) of script `speech-dispatcher' overrides LSB defaults (2 3 4 5).
insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script `speech-dispatcher' overrides LSB defaults (0 1 6).

Um monte de scripts SysV aí. Com o NetworkManager, não tem porque iniciar /etc/init.d/networking. Talvez minissdpd.service (/etc/init.d/minissdpd) e saned.service (/etc/init.d/saned) tenham utilidade. Não sei. Primeiro atiro para depois perguntar.

Depois da faxina:

# systemd-analyze
Startup finished in 4.160s (kernel) + 10.415s (userspace) = 14.576s

Eu mantenho o servidor SSH rodando (este nativo: ssh.service). Desativando-o diminuiria um pouquinho mais.

Razoável para um Core 2 Duo E7300 com um disco rígido de sete anos atrás.

A instalação do GNOME do Debian não instala o Plymouth. Já gostei dele. Faz tempo, entretanto, que não funciona 100% flicker-free. A última vez que vi um boot realmente sem flicker com o Plymouth foi no Fedora 15 rodando numa GeForce 4 alguma coisa. Fica de fora então.

Como a maioria das distribuições, quiet está nas opções de boot. Para termos o bonitinho progresso à medida que o systemd vai trabalhando, edite /etc/default/grub:

[...]

GRUB_CMDLINE_LINUX_DEFAULT="quiet systemd.show_status=1"

[...]

Remover quiet não é uma boa pois o kernel fica falante demais. Adicionar systemd.show_status é melhor.

Atualize a configuração do GRUB:

# update-grub

Até o momento, me parece ser uma migração tranquila do obsoleto SysVinit. O Debian ainda possui uma imensa quantidade de pacotes rodando com scripts SysV e seus mantenedores acharam alguns bugs no código de compatibilidade do systemd. Correções aplicadas no upstream. Acho que os únicos patches significativos ainda downstream implementam o seguinte:

- Suporte a /etc/insserv/overrides, que torna possível substituir localmente o cabeçalho LSB dos scripts SysV.

sysv-generator: add support for /etc/insserv/overrides

Não foi muito bem recebido pelo upstream e será suportado apenas no Jessie. No futuro Debian 9 deve ser removido.

- Fazer o systemctl redirecionar para o update-rc.d quando lidando com scripts SysV.

Make systemctl enable/disable call update-rc.d for sysv init scripts (#709780)
Also redirect to update-rc.d when not using .service
systemctl: call update-rc.d enable|disable, not defaults|remove
Run update-rc.d defaults before update-rc.d <enable|disable>

Não sei por que o time do Debian não tornou esse código upstream, visto que Lennart já sinalizou mais de uma vez que seria uma adição bem-vinda.

Na questão dos logs, o rsyslog vem instalado e o journal é apenas volátil. Ou seja, tudo como antes.

Um bom trabalho, Debian!

Comentários