Um sistema Linux e qualquer outro sistema *, sempre inicia um processo que é o pai de todos os outros processos. Quando você usa o Systemd, esse processo é SystemD, o processo é sempre chamado de 'init', independentemente do sistema init. Depois que o Systemd estiver em execução, ele iniciará os daemons que executam os subsistemas. Os daemons controlam quais recursos você tem e quais sistemas estão abertos. Seu prompt de login é um serviço gerenciado pelo Systemd. Systemd inicia muitos outros serviços e também monta todos os seus discos, incluindo as montagens de snap.
Como você controla o que começa?
Primeiro de tudo, o primeiro sistema init teve níveis que muitos leitores reconhecerão. O Runlevel 1 era o modo de usuário único, 2 modo multiusuário sem rede e 3-5 multiusuário e gráfico. Definir o nível de execução para 0 significava parar e 6 significava reiniciar. Os desenvolvedores do Systemd descobriram que esses níveis não são claros, então mudaram para serem chamados de alvos. Os alvos não são exatamente os mesmos, mas têm uma função semelhante. Quando um alvo específico está em execução, uma coleção específica de unidades está em execução. Mais sobre unidades mais tarde.
Definindo o "Runlevel", chamado de alvo.
Você pode alterar o alvo enquanto estiver em execução, por exemplo, você pode usar um terminal para definir seu alvo como multiusuador. Isso impediria sua GUI, X ou Wayland, mas deixaria você e outros, faça login com um console de texto. Use o seguinte comando.
$ systemctl isolate multiuser.alvo
Ou, se você quiser iniciar sua área de trabalho, use o seguinte comando.
$ systemctl isolado gráfico.alvo
O que você realmente está interessado é como iniciar o nível correto, você pode descobrir o que tem agora.
$ Systemctl Get-Default
Para alterar o padrão, defina -o.
$ Systemctl Set-Default Graphical.alvo
Este comando realmente faz muitas unidades e serviços começarem enquanto você inicializa seu computador. Você pode querer iniciar ou parar um único serviço.
Iniciar, parar, habilitar e desativar um serviço.
É aqui que você tem a chance de mudar o que acontece na inicialização e durante a operação normal. Em contraste com os alvos, as unidades são especiais para um serviço específico. Para interromper um serviço que você usa 'SystemCtl Stop', igualmente você pode usar 'start' e 'reiniciar'. Para fazer um serviço começar na inicialização, você usa 'Ativar', para impedi -lo de 'desativar'. Escolha um serviço e comece e pare enquanto estiver funcionando.
$ systemctl status cops.serviço
Este comando mostra o status do serviço, também mostra uma lista de ações tomadas pelo sistema sobre o serviço. Para parar o serviço, use o comando abaixo.
$ Systemctl Stop Cups.serviço
O serviço agora está parado para sua sessão atual. Para alterá -lo para não começar no próximo uso de inicialização.
$ systemctl desativando xícaras.serviço
Observe que você só poderia desativar o serviço, isso não teria efeito em sua situação atual. O serviço continua correndo. Na próxima bota, porém, não iniciará o serviço.
Systemd também controla montagens, dispositivos, soquetes e muito mais. As unidades estão mais baixas e mais fáceis de entender, se você já lidou com um Linux antes. Você também pode defini -las, mas o maior efeito na inicialização é controlar os serviços.
Como você adiciona seus próprios scripts?
Você pode adicionar seus próprios scripts com bastante facilidade, os detalhes interessantes de saber é como você faz seu script ou serviço para depender dos outros. Isso é claramente demonstrado neste arquivo de serviço de resumo do wifi.
[Unidade]
Descrição = Reiniciar o NetworkManager no currículo
Depois = suspender.alvo
Depois = Hibernate.alvo
Depois = sono híbrido.alvo
[Serviço]
Tipo = OneShot
ExecStart =/bin/systemctl reiniciar-se-gerente de rede.serviço
[Instalar]
Wantedby = suspender.alvo
WantedBy = Hibernate.alvo
WantedBy = Sleep híbrido.alvo
Este código cria um serviço que acontece uma vez (OneShot) depois que os três alvos mencionados no código. O código executado é neste caso um único comando. Você também pode apontar para um script de sua escolha.
Alterando seu sistema, especialmente como ele inicializa, você pode fazer você mesmo, mas tenha cuidado que isso tem muitas consequências para cada serviço, portanto, verifique se seu código é estável e rápido de executar.