===== Exemplos do comando systemctl ===== ==== Nível Básico ==== * **Iniciar um serviço:** - sudo systemctl start nome_servico - Inicia o serviço `nome_servico` imediatamente. * **Parar um serviço:** - sudo systemctl stop nome_servico - Para o serviço `nome_servico` imediatamente. * **Reiniciar um serviço:** - sudo systemctl restart nome_servico - Reinicia o serviço `nome_servico`, parando-o e iniciando-o novamente. * **Verificar o status de um serviço:** - sudo systemctl status nome_servico - Exibe o status atual do serviço `nome_servico`, incluindo logs recentes. * **Habilitar um serviço para iniciar automaticamente no boot:** - sudo systemctl enable nome_servico - Configura o serviço `nome_servico` para iniciar automaticamente no boot. * **Desabilitar um serviço de iniciar no boot:** - sudo systemctl disable nome_servico - Impede o serviço `nome_servico` de iniciar automaticamente no boot. ==== Nível Intermediário ==== * **Recarregar a configuração de um serviço sem interromper sua execução:** - sudo systemctl reload nome_servico - Recarrega as configurações do serviço `nome_servico` sem reiniciar o serviço. * **Recarregar a configuração e reiniciar se necessário (`reload-or-restart`):** - sudo systemctl reload-or-restart nome_servico - Recarrega a configuração do serviço `nome_servico` e, caso a recarga não seja suportada, reinicia o serviço. * **Listar todos os serviços ativos:** - systemctl list-units --type=service --state=active - Exibe uma lista de todos os serviços ativos atualmente no sistema. * **Verificar se um serviço está habilitado no boot:** - systemctl is-enabled nome_servico - Verifica se o serviço `nome_servico` está configurado para iniciar automaticamente no boot. * **Verificar o estado de todos os serviços:** - systemctl list-units --type=service - Exibe o estado de todos os serviços conhecidos no sistema. * **Exibir o histórico de falhas de um serviço:** - sudo systemctl status nome_servico - Mostra o histórico de erros e falhas de execução recentes do serviço `nome_servico`. * **Reiniciar todos os serviços que dependem de um serviço específico:** - sudo systemctl reload nome_servico --all - Recarrega ou reinicia todos os serviços que dependem do serviço `nome_servico`. ==== Nível Avançado ==== * **Reinicializar o sistema (comando `reboot` via systemctl):** - sudo systemctl reboot - Reinicia o sistema de maneira controlada. * **Desligar o sistema (comando `shutdown` via systemctl):** - sudo systemctl poweroff - Desliga o sistema completamente. * **Verificar a falha mais recente de um serviço:** - sudo systemctl --failed - Exibe a lista de serviços que falharam recentemente. * **Verificar dependências de um serviço:** - systemctl list-dependencies nome_servico - Mostra todas as dependências do serviço `nome_servico`. * **Verificar os logs de um serviço com o `journalctl`:** - journalctl -u nome_servico - Exibe os logs gerados pelo serviço `nome_servico`. * **Habilitar um serviço para rodar somente para o próximo boot:** - sudo systemctl enable nome_servico --now - Habilita o serviço para iniciar automaticamente apenas no próximo boot. * **Desabilitar e parar um serviço simultaneamente:** - sudo systemctl disable nome_servico --now - Desabilita o serviço de iniciar no boot e o para imediatamente. * **Analisar o status completo de um serviço, incluindo dependências:** - systemctl show nome_servico - Exibe o status detalhado do serviço `nome_servico`, incluindo todas as suas dependências e configurações. ==== Nível Especializado ==== * **Criar e habilitar um novo serviço personalizado (unit file):** - **Criar o arquivo de serviço:**
sudo nano /etc/systemd/system/meu_servico.service
- **Adicionar a seguinte configuração:** ```ini [Unit] Description=Meu Serviço Personalizado After=network.target [Service] ExecStart=/caminho/para/o/script.sh Restart=on-failure [Install] WantedBy=multi-user.target ``` - **Habilitar e iniciar o serviço:**
sudo systemctl enable meu_servico.service
sudo systemctl start meu_servico.service - Cria, habilita e inicia um serviço personalizado que executa o script `script.sh`. * **Recarregar a configuração do `systemd` após alterar um arquivo de serviço:** - sudo systemctl daemon-reload - Recarrega as configurações do `systemd` após modificar arquivos de unidades (unit files). * **Definir o tempo limite (timeout) para a reinicialização de um serviço:** - sudo systemctl set-property nome_servico RestartSec=10 - Define um tempo de 10 segundos como limite para que o serviço `nome_servico` seja reiniciado após uma falha. * **Desativar permanentemente um serviço (máscara):** - sudo systemctl mask nome_servico - Impede que o serviço `nome_servico` seja iniciado, mesmo que alguém tente iniciar manualmente. * **Remover uma máscara de um serviço:** - sudo systemctl unmask nome_servico - Remove a máscara do serviço `nome_servico`, permitindo que ele seja iniciado novamente. * **Executar um serviço em um ambiente específico (override environment):** - sudo systemctl edit nome_servico - Abre um editor para modificar a configuração do serviço e adicionar variáveis de ambiente personalizadas. * **Alterar a prioridade de um serviço (nice value):** - sudo systemctl set-property nome_servico CPUShares=500 - Ajusta a prioridade do serviço `nome_servico`, alterando o valor de compartilhamento de CPU (quanto maior, mais recursos são alocados). * **Desativar o modo de suspensão do sistema:** - sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target - Impede que o sistema entre em qualquer modo de suspensão. * **Habilitar o modo de recuperação do sistema:** - sudo systemctl isolate rescue.target - Coloca o sistema no modo de recuperação, onde apenas serviços essenciais são carregados.