Use o systemd para iniciar um serviço Linux na inicialização ⋆ ALexHost SRL
Teste suas habilidades em todos os nossos serviços de hospedagem e ganhe 15% de desconto!

Utilizar o código no ato da compra:

Skills
04.06.2025

Use o systemd para iniciar um serviço Linux na inicialização

Para aqueles que gerenciam aplicativos ou serviços na hospedagem VPS Linux, garantir que os serviços essenciais sejam iniciados automaticamente na inicialização é essencial para manter a operação ininterrupta. Usando o systemd, um sistema de inicialização avançado e flexível, você pode configurar facilmente os serviços para serem iniciados logo na inicialização do sistema, o que é crucial para aplicativos da Web, bancos de dados e outros serviços essenciais executados em ambientes VPS. Este guia o orientará na configuração de uma unidade de serviço systemd personalizada, para que você possa automatizar a inicialização do serviço, simplificar o gerenciamento e garantir a confiabilidade em sua configuração de hospedagem VPS Linux.

Usar o systemd para iniciar um serviço Linux na inicialização

o systemd é o sistema de inicialização moderno usado por muitas distribuições Linux para gerenciar serviços e recursos do sistema. Um de seus principais recursos é a capacidade de iniciar serviços automaticamente na inicialização, garantindo que aplicativos e serviços essenciais estejam em funcionamento assim que o sistema for iniciado. Este artigo o guiará pelas etapas para criar uma unidade de serviço do systemd e permitir que ela seja iniciada na inicialização.

O que é o systemd?

o systemd é um sistema de inicialização que substitui sistemas de inicialização mais antigos, como o SysVinit e o Upstart. Ele gerencia os processos e serviços do sistema, permitindo a paralelização da inicialização do serviço, a inicialização sob demanda de daemons e um melhor controle de recursos. Com sua estrutura de arquivo de unidade, o systemd oferece uma maneira flexível de gerenciar serviços, soquetes, dispositivos e outros recursos do sistema.

Criação de um serviço systemd

Para iniciar um serviço na inicialização usando o systemd, é necessário criar um arquivo de unidade de serviço. Esse arquivo contém todas as informações necessárias para que o systemd gerencie o serviço. Veja a seguir como criar e configurar um arquivo de unidade de serviço:

Etapa 1: verificar o diretório de trabalho

Abra o arquivo de unidade de serviço para verificar a diretiva WorkingDirectory:

sudo nano /etc/systemd/system/myapp.service

Localize a linha WorkingDirectory. Ela deve ter a seguinte aparência ( procure por: Create the Service Unit File):

WorkingDirectory=/etc/systemd/myapp

Verifique se o diretório especificado existe:

ls -l /etc/systemd/myapp

* /path/to/myapp – substitua pelo caminho real que você deseja usar. Se você receber um erro informando que o diretório não existe, será necessário criá-lo.

Etapa 2: Criar o diretório de trabalho

Se o diretório não existir, crie-o:

sudo mkdir -p /etc/systemd/myapp

Defina as permissões apropriadas para que o usuário especificado na diretiva User do seu serviço possa acessá-lo. Por exemplo, se o seu serviço for executado como myuser:

sudo chown myuser:myuser /etc/systemd/myapp

Criar o arquivo de unidade de serviço

  1. Abra um terminal em seu sistema Linux.
  2. Crie um novo arquivo de unidade de serviço no diretório /etc/systemd/system/. O nome do arquivo deve terminar com .service. Por exemplo, para criar um serviço para um aplicativo personalizado chamado myapp, você executaria:
    sudo nano /etc/systemd/system/myapp.service
  3. Adicione o seguinte conteúdo ao arquivo, modificando-o conforme necessário para o seu aplicativo:
    [Unit]
    Description=My Custom Application
    After=network.target
    [Service]
    ExecStart=/usr/bin/myapp
    Restart=always
    User=myuser
    WorkingDirectory=/etc/systemd/myapp
    [Install]
    WantedBy=multi-user.target
  • seção [Unit]: Esta seção fornece metadados e dependências para o serviço.
      • Descrição: Uma breve descrição do serviço.
      • After (Depois): Especifica que o serviço deve ser iniciado depois que a rede estiver disponível.
  • seção [Service]: Essa seção define como o serviço se comporta.
      • ExecStart: O comando para iniciar o serviço. Substitua /usr/bin/myapp pelo caminho do seu executável.
      • Restart (Reiniciar): Define o comportamento de reinicialização. Sempre significa que o serviço será reiniciado se houver falha.
      • Usuário: especifica o usuário sob o qual o serviço deve ser executado.
      • WorkingDirectory: Define o diretório de trabalho do serviço.
  • seção [Install]: Essa seção define como o serviço deve ser ativado.
      • WantedBy: Define o destino sob o qual o serviço deve ser iniciado. multi-user.target é um destino comum para serviços de usuário.

Etapa 3: verificar permissões

Verifique se o usuário tem as permissões corretas para acessar o diretório de trabalho:

ls -ld /etc/systemd/myapp

Certifique-se de que as permissões permitam que o usuário leia e execute arquivos nesse diretório.

Etapa 4: teste o executável no diretório de trabalho

Certifique-se de que seu aplicativo possa ser executado a partir desse diretório de trabalho. Você pode testar isso mudando para o usuário e navegando até o diretório:

sudo -u myuser bash
cd /etc/systemd/myapp
/usr/bin/myapp
Verifique se ele é executado sem nenhum erro. Se houver falha, solucione o problema do próprio aplicativo.

Etapa 5: recarregar o systemd e iniciar o serviço

Depois de garantir que o diretório de trabalho exista e esteja configurado corretamente, recarregue a configuração do systemd:

sudo systemctl daemon-reload

Tente iniciar o serviço novamente:

sudo systemctl start myapp.service

Etapa 6: Verificar o status

Verifique o status do serviço para ver se ele foi iniciado com êxito:

sudo systemctl status myapp.service

Etapa 7: Examinar os registros de erros adicionais

Se o serviço ainda não conseguir iniciar, examine os registros para obter informações adicionais:

journalctl -u myapp.service

Etapa 8: (Opcional) Parar e desativar o serviço

Se precisar interromper o serviço ou impedir que ele seja iniciado na inicialização, você pode usar os seguintes comandos:

  • Para interromper o serviço:
    sudo systemctl stop myapp.service
  • Para impedir que o serviço seja iniciado na inicialização:
    sudo systemctl disable myapp.service

Conclusão

Usar o systemd para iniciar um serviço Linux na inicialização é um processo simples que aumenta a confiabilidade e o gerenciamento do sistema. Ao criar um arquivo de unidade de serviço, você pode definir como seu aplicativo deve ser executado e garantir que ele seja iniciado automaticamente com o sistema. Esse método não apenas simplifica o gerenciamento de serviços, mas também fornece recursos avançados para controlar o comportamento do serviço, tornando o systemd uma ferramenta essencial para a administração moderna do sistema Linux.

Com essas etapas, você pode configurar e gerenciar efetivamente seus próprios serviços, melhorando a funcionalidade geral do seu ambiente Linux. Se encontrar algum problema, a análise dos logs com o journalctl pode fornecer informações úteis sobre o que pode estar acontecendo de errado.

Teste suas habilidades em todos os nossos serviços de hospedagem e ganhe 15% de desconto!

Utilizar o código no ato da compra:

Skills