Veremos aqui uma atualização do artigo que trata da instalação do systemd no Debian.
O systemd é um novo sistema de inicialização extremamente rápido e eficiente e que tem como adeptas distros como o Arch Linux, Fedora, entre outras.
O Systemd no modo mais fácil.
Os passos a seguir são de carater experimental, já que o sistema de inicialização padrão do Debian é o SystemV, o popular sysvinit, siga-o por sua conta e risco!
Embora não seja recomendado na Debian Wiki, de carona na coragem do amigo hiltongil que após a 1ª leitura desse how-to resolveu instalar o pacote systemd-sysv e substituir o sysvinit, resolvi fazer o mesmo aqui e tenho que destacar que nenhuma alteração foi necessária, nem no arquivo /etc/default/grub tampouco no arquivo /etc/systemd/system.conf (embora seja recomendável modificar esse último), os quais serão citados no método alternativo, segue os passos e imagens:
# apt-get update # apt-get install systemd-sysv systemd-gui libpam-systemd
Para o Debian Jessie/Testing ou SID/Unstable, use:
# apt-get update # apt-get install systemd-sysv systemd-ui libpam-systemd
Observem que ao solicitar a instalação do pacote systemd-sysv é exibido o seguinte alerta quanto a substituição do pacote sysvinit:
Você está prestes a fazer algo destrutivo.
Para continuar digite a frase ‘Sim, faça o que eu digo!’
Isto é de suma importância!!!
Após a instalação do pacote systemd-sysv é necessário travá-lo (mantê-lo com a tag hold) de forma a impedir que o sysvinit seja reinstalado o que acarretará na remoção do systemd, para tal faremos assim:
# echo "systemd-sysv hold"|dpkg --set-selections # apt-get update # apt-get dist-upgrade
Se não aparecer qualquer mensagem pertubadora informando que o systemd-sysv será removido e o sysvinit tomará seu lugar, você configurou corretamente.
Essa manha passada, descrevi numa antiga dica do VOL:
Excluindo pacotes da lista de atualizações em distros Debian-like
Revertendo as coisas…
Para reverter as coisas à sua ordem natural, ou seja, o sysvinit no lugar do systemd-sysv, executamos os seguintes comandos:
# echo "systemd-sysv install"|dpkg --set-selections # apt-get update # apt-get dist-upgrade
Método Alternativo: Systemd e Sysvinit lado a lado.
Diferentemente do método anterior, neste não haverá substituição ou remoção de pacotes essenciais, mas apenas a instalação de pacotes e modificações em arquivos de configuração, comecemos pela instalação do pacote systemd:
# apt-get update # apt-get install systemd
Em seguida modificamos a linha GRUB_CMDLINE_LINUX_DEFAULT no arquivo /etc/default/grub, antes a mesma encontrava-se assim:
GRUB_CMDLINE_LINUX_DEFAULT="quiet gfxpayload=1024x768x16"
Eu poderia deixá-la como visto abaixo, porém, seriam suprimidas diversas informações que talvez fossem necessárias num sistema de testes:
GRUB_CMDLINE_LINUX_DEFAULT="quiet init=/lib/systemd/systemd"
Conforme dito acima, optei por um boot mais informativo, e para tanto retirei a opção quiet e adicionei o comando init=/bin/systemd que chama o systemd como sistema de inicialização padrão, seguido de suas opções padrão para mensagens no boot systemd.log_target=kmsg e systemd.log_level=debug, com isso a linha GRUB_CMDLINE_LINUX_DEFAULT ficou assim:
GRUB_CMDLINE_LINUX_DEFAULT="init=/bin/systemd systemd.log_target=kmsg systemd.log_level=debug"
Em seguida, executa-se o comando abaixo para atualizar as novas configurações do Grub:
# update-grub
Caso queiram verificar as novas configurações do Grub, usem:
# cat /boot/grub/grub.cfg | less
E por fim habilita-se as opções de log no arquivo /etc/systemd/system.conf, aqui habilitei as seguintes linhas:
LogLevel=debug LogTarget=syslog-or-kmsg LogColor=yes SysVConsole=yes
Abaixo vejam meu Debian Wheezy rodando com systemd sobre o kernel Liquorix 3.8.8:
Escolhendo qual sistema utilizar via Grub
Esse segundo método é muito interessante pois nos dá mais opções, aqui podemos por exemplo na tela do Grub, teclar ” e ” na linha referente ao kernel a ser iniciado, mover-se até a linha começada por linux, exemplo:
linux /boot/vmlinuz-3.8-10.dmz.1-liquorix-686 root=UUID=296dbdb7-6e46-45fc-8dd7-551d1ba466ca ro quiet init=/bin/systemd systemd.log_target=kmsg systemd.log_level=debug
E modificá-la para:
linux /boot/vmlinuz-3.8-10.dmz.1-liquorix-686 root=UUID=296dbdb7-6e46-45fc-8dd7-551d1ba466ca ro quiet
Feito isto bastará teclar Ctrl + x e em seguida seu Debian iniciará seu Debian com o Sysvinit!
Obviamente isso é uma solução temporária, pois o que vale é o que está definido em /etc/default/grub, ou seja, após um novo reboot, o sistema a ser iniciado é o que está definido no arquivo citado.
Revertendo aos valores padrão…
Comece pela edição da linha GRUB_CMDLINE_LINUX_DEFAULT no arquivo /etc/default/grub, retornando-a para os valores padrão, ou seja, a retirada das opções indicadas anteriormente, salve o arquivo e execute no terminal:
# update-grub
Após o reinício (normal) de seu sistema remova o pacote systemd:
# apt-get --purge remove systemd
Gerenciando Serviços.
Com o systemd, os comandos invoke-rc.d, update-rc.d e service ainda podem ser executados diretamente, porém os mesmos ou chamam o comando systemctl, ou são por este chamados (caso do update-rc.d):
# invoke-rc.d rsync stop # invoke-rc.d rsync start # service sudo start # service sudo stop # systemctl enable squid.service # systemctl status squid.service # systemctl start squid.service # systemctl stop squid.service # systemctl reload squid.service # systemctl restart squid.service
Nos Debians Testing e SID os serviços são facilmente gerenciados graças ao pacote systemd-ui, cujo executável é o systemdadm, visto abaixo numa instalação do Debian Jessie XFCE:
Performance.
Não era necessário dizer, mas assim como no caso do Arch Linux, o boot em meu Debian Wheezy ficou infinitamente mais rápido e ficaria ainda mais se eu não tivesse habilitado aquelas informações extras mais acima!
Referências.
Acha que vale a pena trocar o padrao peleo systemd? O ganho na inicializacao foi notado?
CurtirCurtir
Há um ganho sim, principalmente se deixar a opção quiet na linha do Grub.
Vale a pena o teste até porque com uma pequena modificação na linha do Grub você retorna ao padrão.
* e dá para fazê-lo (temporariamente) até diretamente na tela do Grub, basta teclar ” e ” ir até a linha começada por ” linux ” retirar as opções aqui propostas e teclar ” Ctrl + x ” feito isso o boot iniciará com o sysvinit.
Eu devo acrescentar novas coisas nesse artigo e tendo feito isso dou um reload no mesmo.
Um abraço.
CurtirCurtir
Maneiro já andava com vontade de testar o systemd aqui faz um tempão mas tava meio receoso. Segui o tutorial e tá tudo certinho. Apenas tive que apreder algumas coisas como o reboot e halt. Mas não consegui ter sucesso para fazer a máquina iniciar em runlevel 3 você faz ideia de como fazer isso?
CurtirCurtir
Obrigado pelo comentário.
Não entendi esse lance do init 3, porque o Debian não faz distinção do do ao 5, é tudo a mesma coisa.
Porém executando o seguinte comando:
# systemctl list-unit-files
Você encontra isso:
runlevel0.target disabled
runlevel1.target disabled
runlevel2.target disabled
runlevel3.target disabled
runlevel4.target disabled
runlevel5.target disabled
runlevel6.target disabled
Acho que para todas as suas dúvidas as soluções estão aqui:
http://fedoraproject.org/wiki/Systemd
http://www.dynacont.net/documentation/linux/Useful_SystemD_commands/
CurtirCurtir
Fazendo alguns testes percebi uma coisa: a) seguindo a instalação do systemd como informada no artigo tive alguns pequenos probleminhas. Por exemplo, para reiniciar no XFCE os botões não estavam dando certo. Também no terminal comando como reiniciar e halt não funcionavam. Era preciso substituir pelos correspondentes: systemdctl reboot etc.
Todavia, realizando alguns testes em outro PC fiz a instalação dos pacotes: systemd libsystemd-daemon0 libsystemd-journal0 libsystemd-login0 systemd-gui systemd-sysv libsystemd-id128-0 (PS: como uso o aptosid o repositório habilitado é o SID, portanto não sei se os mesmos pacotes estão disponíveis nos demais repositórios), após isso reiniciei a máquina e tava tudo certinho. Não foi necessário editar a linha no grub e os comandos como reboot e halt bem como os botões de desligar e reiniciar estão ok. (Se não me engano é o pacote systemd-sysv o responsável por isso).
Teste em outras máquinas esse método e tudo funcionou 100%. Se os pacotes estiverem disponível em todos os repositórios acho que essa forma é ainda mais simples.
CurtirCurtir
Mas acontece que (pelos menos no Wheezy), instalar o pacote systemd-sysv implicará na remoção do sysvinit, daí o motivo de eu não ter incluido essa alternativa, você estará trocando um pelo outro, se funcionou muito bom!
Realmente o systemd (na minha opinião) melhora a inicialização do sistema, mas no Debian ele peca numa coisa, serviços são ativados automaticamente porque ele chama o update-rc.d, já nas outras distros você tem que fazer na unha o que é bom pois deixa o sistema mais leve e rápido com serviços ativos apenas aqueles que você configurou.
CurtirCurtir
Indo de carona na sua coragem, removi aquelas entradas do grub, removi todos os pacotes instalados nessa dica e instalei o systemd-sysv.
De fato funciona! e não foi necessário alterar ou modificar nada!
Vou adicionar essas informações nesse how-to e inserir as imagens do processo de instalação e a temerosa mensagem na hora da substituição do sysvinit.
intÉ!
CurtirCurtir
Beleza =]
A dica de trancar o pacote caiu como uma luva aqui… cada vez que eu rodava o dist-upgrade ele queria remover o systemd.
Como qualquer mudança acredito que de início poderão ocorrer alguns probleminhas mas que não devem ser muito difíceis de resolver. Por exemplo como utilizo o Truecrypt notei que ele não tava montado a unidade criptografada. Dai dei uma pesquisada e achei como contornar a situação na wiki do Arch.
Espero que o Debian adote o systemd como default as vantagens da inicialização são perceptíveis. Mas também entendo que até que o procedimento esteja bem testado e documentado isso dificilmente irá acontecer.
Todavia, esse howto já entrou na minha “lista padrão” de procedimentos pós-instalação do aptosid.
Parabéns.
CurtirCurtir
Valeu brother, o triste é que me parece (já li em algum lugar) que o Debian adotará o UpStart do Ubuntu em lugar do Sysvinit.
O UpStart é o mesmo caso do Systemd, ele remove o Sysvinit e além disso trás algumas frescurites do Ubuntu rs, como o Plymouth.
Um abraço.
CurtirCurtir
Olá Amigo Edps! Mais uma vez seus tutoriais surpreendentes! Bem vamos as duvidas.
Primeiro queria saber se estou fazendo algo de errado na segunda dica, pois quando rolei o Grub com a modificação meu sistema não inicializou mais. Retornei o boot ao modo padrão mas fiquei imaginando. Seria meu Hardware ou burrice minha mesmo? ahahahaha (O Computador em questão é um DELL Core 2 Duo)
E uma segunda dúvida, o Upstart é mais rápido que o adotado pelo Debian atualmente?
CurtirCurtir
Até agora ninguém me reportou erro algum, experimente modificar o arquivo de configuração do Grub (/etc/default/grub), adicionando ao final do mesmo apenas isso após o ro:
quiet init=/bin/systemd
ou apenas:
init=/bin/systemd
* nesse último o boot será aquela sopa de letrinhas! rsrs
E após modificar, execute:
# update-grub
CurtirCurtir
Então amigo deu certo. Estou usando o Sysyemd rolando pelo método mais corajoso! hahaha! Só que estou enfrentando mais um probleminha. O meu boot está muito mais lento! O que pode ser isso?
CurtirCurtir
Estranho… de repente pode inserir as linhas no grub: GRUB_CMDLINE_LINUX_DEFAULT=”init=/bin/systemd systemd.log_target=kmsg systemd.log_level=debug”
Dai tenta verificar o que pode estar ocasionando essa demora. Nas máquinas que testei (quatro até o momento) todas ficaram sensivelmente mais rápidas. Deve ter alguma coisa acontecendo por aí =]
CurtirCurtir
A sugestão dada pelo @hiltongil seria a mesma que eu iria lhe passar, usar aquelas opções no Grub lhe trarão mais informações de modo a depurar onde estão os gargalos.
Aqui testei no VirtualBox, 2 instalações em meu PC e 1 num NetBook e não tive problema algum.
CurtirCurtir
Republicou isso em System Configuration.
CurtirCurtir
Excelente post meu amigo. Muito obrigado.
Através do bootchart pude monitorar o meu boot. Com o systemd abaixei meu boot de 22segundos pra 18.
Mais uma vez muito obrigado e um forte abraço.
CurtirCurtir
Cê já tentou compilar/instalar pela fonte? essa ultima versão, o systemd215?
CurtirCurtir