Gerenciando Serviços do Sistema com systemd
Controle os programas de longa duração que mantêm um servidor Linux em funcionamento usando systemd: inicie, pare, habilite e inspecione serviços, leia seus registros com journalctl e entenda como as unidades se encaixam no gerenciamento de processos.
Gerenciando Serviços do Sistema com systemd é uma aula grátis de Linux Server Deployment & SSH Mastery no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Linux Server Deployment & SSH Mastery, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Linux Server Deployment & SSH Mastery inclui 4 aulas no total.
Serviços versus processos comuns
Você gerenciou processos individuais e tarefas agendadas. Porém, os programas que definem um servidor — servidores web, bancos de dados e SSH — são executados como serviços: processos em segundo plano que devem iniciar na inicialização e reiniciar em caso de falha.
No Linux moderno, os serviços são gerenciados pelo systemd, o gerenciador do sistema e dos serviços.
O que o systemd gerencia
O systemd organiza tudo em unidades. O tipo mais comum é a unidade .service, que descreve como executar um processo em segundo plano.
O comando systemctl é sua principal interface para inspecionar e controlar essas unidades.
systemctl --versionVerificando o status de um serviço
systemctl status mostra se um serviço está em execução, o ID do processo principal, as linhas recentes do registro e se ele está ativado na inicialização.
Geralmente, este é o primeiro comando executado ao solucionar problemas de um serviço.
systemctl status nginxIniciando e parando serviços
Você controla o estado de execução de um serviço com start, stop e restart. Eles entram em vigor imediatamente, mas não alteram o comportamento na inicialização.
Use reload quando um serviço oferecer suporte à releitura da configuração sem interromper as conexões.
sudo systemctl start nginx
sudo systemctl restart nginx
sudo systemctl reload nginx
sudo systemctl stop nginxAtivando serviços na inicialização
enable faz um serviço iniciar automaticamente quando o servidor é inicializado; disable o remove da inicialização. Isso é independente de ele estar em execução no momento.
A opção prática --now ativa e inicia o serviço em uma única etapa.
sudo systemctl enable nginx
sudo systemctl enable --now nginx
sudo systemctl disable nginxListando serviços
Para ver o que está instalado e em execução, liste os arquivos de unidade ou as unidades ativas.
list-units --type=service— serviços carregados no momentolist-unit-files --type=service— todos os serviços instalados e seu estado de ativação
systemctl list-units --type=service --state=running
systemctl list-unit-files --type=serviceLendo registros com journalctl
O systemd captura a saída dos serviços no diário. Consulte-o com journalctl.
-u nginx— somente este serviço-f— acompanhar em tempo real-e— ir para o final
sudo journalctl -u nginx -f
sudo journalctl -u ssh --since '1 hour ago'Anatomia de um arquivo de unidade
Um serviço é definido por um arquivo de unidade, geralmente em /etc/systemd/system/ ou /lib/systemd/system/. Ele tem três seções principais: [Unit], [Service] e [Install].
A linha ExecStart informa ao systemd qual comando deve ser executado.
[Unit]
Description=My App
After=network.target
[Service]
ExecStart=/usr/bin/myapp --port 8080
Restart=on-failure
[Install]
WantedBy=multi-user.targetCriando seu próprio serviço
Para executar seu próprio programa como um serviço, coloque um arquivo de unidade em /etc/systemd/system/, recarregue o systemd para que ele veja o novo arquivo e, em seguida, ative e inicie o serviço.
daemon-reload é necessário após qualquer alteração em um arquivo de unidade.
sudo nano /etc/systemd/system/myapp.service
sudo systemctl daemon-reload
sudo systemctl enable --now myappReinicialização automática em caso de falha
Um dos melhores recursos do systemd é a recuperação automática. A diretiva Restart= informa que ele deve iniciar novamente um serviço que tenha falhado.
Restart=on-failure— somente após uma saída diferente de zeroRestart=always— sempre que ele pararRestartSec=5— aguardar antes de tentar novamente
[Service]
ExecStart=/usr/bin/myapp
Restart=always
RestartSec=5Boas práticas
Gerencie os serviços com confiança:
- Diferencie a execução (
start) da inicialização (enable) - Execute
daemon-reloaddepois de editar arquivos de unidade - Use
journalctl -upara depurar, em vez de arquivos de registro espalhados - Adicione
Restart=on-failurepara tornar aplicativos personalizados mais resilientes
Verificação rápida
Teste seus conhecimentos sobre o systemd.
Recapitulação
Agora você pode gerenciar serviços do servidor com o systemd:
status,start,stop,restart,reloadenable/disablepara o comportamento na inicializaçãojournalctl -upara os registros dos serviços- Arquivos de unidade personalizados
.servicecomRestart=para maior resiliência
Isso complementa suas habilidades de gerenciamento de processos e tarefas com processos de longa duração em segundo plano.
Perguntas Frequentes
A aula “Gerenciando Serviços do Sistema com systemd” é grátis?
Sim — o texto completo de “Gerenciando Serviços do Sistema com systemd” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Linux Server Deployment & SSH Mastery, atualize para CoddyKit PRO. O curso de Linux Server Deployment & SSH Mastery inclui 4 aulas no total.
O que vou aprender em “Gerenciando Serviços do Sistema com systemd”?
Controle os programas de longa duração que mantêm um servidor Linux em funcionamento usando systemd: inicie, pare, habilite e inspecione serviços, leia seus registros com journalctl e entenda como as… Você pratica Linux Server Deployment & SSH Mastery com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Linux Server Deployment & SSH Mastery?
Nenhuma experiência prévia é necessária. Linux Server Deployment & SSH Mastery no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Gerenciando Serviços do Sistema com systemd”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Linux Server Deployment & SSH Mastery?
Sim. Cada aula de Linux Server Deployment & SSH Mastery inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Gerenciando Usuários e Grupos
- Monitorando Processos do Sistema
- Tarefas Agendadas com Cron
- Gerenciando Serviços do Sistema com systemd