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
06.11.2024

Usar o systemd para iniciar um serviço Linux no arranque

Para aqueles que gerenciam aplicativos ou serviços em hospedagem VPS Linux, garantir que os serviços críticos sejam iniciados automaticamente na inicialização é essencial para manter a operação ininterrupta. Usando o systemd, um sistema de inicialização poderoso e flexível, é possível 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 em execução em ambientes VPS. Este guia irá guiá-lo através da configuração de uma unidade de serviço systemd personalizada, para que possa automatizar o arranque do serviço, simplificar a gestão e garantir a fiabilidade na sua configuração de alojamento 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 críticos estejam em funcionamento assim que o sistema for iniciado. Este artigo irá guiá-lo através das etapas para criar uma unidade de serviço systemd e habilitá-la para iniciar 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, inicialização sob demanda de daemons e melhor controle de recursos. Com sua estrutura de arquivos de unidade, o systemd fornece uma maneira flexível de gerenciar serviços, soquetes, dispositivos e outros recursos do sistema

Criando 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. Este arquivo contém todas as informações necessárias para que o systemd gerencie o serviço. Aqui está como criar e configurar um arquivo de unidade de serviço

Passo 1: Verificar o diretório de trabalho

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

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

Encontre a linha WorkingDirectory. Ela deve ter a seguinte aparência ( Procure: Criar o arquivo da unidade de serviço)

WorkingDirectory=/etc/systemd/myapp

Verificar se o diretório especificado existe

ls -l /etc/systemd/myapp

* /path/to/myapp – substitua pelo caminho real que pretende utilizar. Se receber um erro de que o diretório não existe, terá de o criar

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 ficheiro da unidade de serviço

  1. Abra um terminal no 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 ficheiro, modificando-o conforme necessário para a sua aplicação:
    [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
  • secção [Unidade]: Esta secção fornece metadados e dependências para o serviço
      • Descrição: Uma breve descrição do serviço.
      • Após: Especifica que o serviço deve ser iniciado depois de a rede estar disponível.
  • secção [Serviço]: Esta secção define o comportamento do serviço
      • ExecStart: O comando para iniciar o serviço. Substitua /usr/bin/myapp pelo caminho para o seu executável.
      • Reiniciar: Define o comportamento de reinicialização. sempre significa que o serviço será reiniciado se falhar.
      • Utilizador: Especifica o utilizador sob o qual o serviço deve ser executado.
      • WorkingDirectory: Define o diretório de trabalho para o serviço.
  • secção [Instalar]: Esta secção define a forma 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 utilizador.

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 permitem que o utilizador leia e execute ficheiros neste diretório

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

Certifique-se de que a sua aplicação pode ser executada a partir deste 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 é executado sem quaisquer erros. Se falhar, resolva o problema da própria aplicação.

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

Passo 6: Verificar o estado

Verifique o status do serviço para ver se ele foi iniciado com sucesso

sudo systemctl status myapp.service

Etapa 7: revisar os logs para erros adicionais

Se o serviço continuar a não iniciar, reveja os registos para obter informações adicionais

journalctl -u myapp.service#

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

Se for necessário parar o serviço ou impedir que ele seja iniciado na inicialização, é possível usar os seguintes comandos

  • Para parar o serviço
    sudo systemctl stop myapp.service
    #
  • Para desativar o serviço a partir do arranque
    sudo systemctl disable myapp.service

Conclusão

Usar o systemd para iniciar um serviço Linux no arranque é um processo simples que melhora a fiabilidade e gestão do sistema. Ao criar um arquivo de unidade de serviço, é possível 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 poderosos 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 revisão dos registos com o journalctl pode fornecer informações úteis sobre o que pode estar a correr mal.

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