Desejo melhorar o tempo de inicialização do meu Ubuntu GNOME 16.04 desativando os serviços plymouth ao inicializar. Eu encontrei duas respostas sobre como fazê-lo em vários sites, a saber:
# systemctl disable plymouth-quit-wait.service
# systemctl mask plymouth-quit-wait.service
Não posso executar nenhum dos itens acima, a menos que eu saiba o que eles fazem.
Respostas:
Se um serviço for
enabled
, existe um link simbólico em algum lugarpara um arquivo de unidade, geralmente em algum lugar
Ajuda, quando você
enable
presta um serviço, os caminhos completos do link e destino criados serão impressos em stdout.Desativar o serviço exclui o link simbólico, para que o arquivo da unidade em si não seja afetado, mas o serviço não seja carregado na próxima inicialização, quando o systemd ler
/etc/systemd/system
.No entanto, um serviço desabilitado pode ser carregado e será iniciado se um serviço que depende dele for iniciado ;
enable
edisable
apenas configure o comportamento de inicialização automática para unidades, e o estado é facilmente substituído.Um serviço mascarado é aquele cujo arquivo de unidade é um link simbólico para
/dev/null
. Isso torna "impossível" carregar o serviço, mesmo que seja exigido por outro serviço ativado.Quando você é
mask
um serviço, um link simbólico é criado de/etc/systemd/system
para/dev/null
, deixando o arquivo da unidade original em outro local intocado. Quando você éunmask
um serviço, o link simbólico é excluído.No entanto, notei que esses comandos nem sempre são respeitados.
Quando tento mascarar a maioria dos serviços, ele falha:
Claro, parei o serviço primeiro. @Anwar sugere que o mascaramento só é possível para serviços não críticos.
Desmascarar um serviço mascarado, a menos que eu mesmo tenha mascarado, também falha (silenciosamente). Eu acredito que isso ocorre porque não há arquivo de unidade para o serviço em qualquer lugar, exceto na forma de um link simbólico para
/dev/null
, desta vez em/lib/systemd/system
:Eu não sou o único com esse problema
Para realmente desmascarar o serviço mascarado x11-common, tive que excluir o link simbólico para
/dev/null
esudo apt-get install --reinstall x11-common && sudo systemctl daemon-reload
. Agora, quando a consulta,systemctl status x11-common
vejo que o serviço possui um belo círculo verde e está carregado e ativo (encerrado), embora não tenha um arquivo de unidade.Para referência adicional, este artigo sobre Como usar o Systemctl pode ser útil.
fonte
systemctl status x11-common ● x11-common.service Loaded: masked (/dev/null; bad) Active: inactive (dead)
. Isso é ruim? Mas eu estou no Debian, não no Ubuntu. Enfim, boa explicação. Obrigado.É bem simples.
systemctl start
,systemctl stop
: inicia (para) a unidade em questão imediatamente ;systemctl enable
,systemctl disable
: Marcas (Desmarca) da unidade de arranque automático no momento do arranque (de um modo específico do aparelho, descrito na sua[Install]
secção);systemctl mask
,systemctl unmask
: proíbe (permite) todas e quaisquer tentativas de iniciar a unidade em questão (manualmente ou como uma dependência de qualquer outra unidade, incluindo as dependências do destino de inicialização padrão). Observe que a marcação para inicialização automática no systemd é implementada adicionando uma dependência artificial do destino de inicialização padrão à unidade em questão; portanto, "mascarar" também não permite a inicialização automática.Ref .: systemctl (1) .
Mais: Lennart Poettering (02/03/2011). "Os três níveis de folga" . systemd para administradores . 0pointer.de.
fonte
Em resumo,
disable
desativa a unidade durante a inicialização. Mas essa unidade pode ser iniciada a qualquer momento após a inicialização.mask
desativa completamente a unidade. Não pode ser iniciado sem desmascarar. Isso implica automaticamente que falhará durante a inicialização.fonte
mask
eunmask
trabalhe para você? (Eu entendo se você não quer teste!)[email protected]
serviço.