Como iniciar um serviço Linux com o systemd ⋆ 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
11.11.2024

Como iniciar um serviço Linux com o systemd

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. Ao seguir estes passos, pode manter um maior controlo sobre o comportamento do serviço do seu sistema e melhorar a sua funcionalidade geral.

Como iniciar um serviço Linux com o systemd

o systemd é o sistema de inicialização moderno usado por muitas distribuições Linux para gerenciar serviços e recursos do sistema. Uma de suas principais caraterísticas é a capacidade de iniciar serviços automaticamente na inicialização, garantindo que aplicativos e serviços críticos estejam prontos e funcionando assim que o sistema for iniciado. Este artigo irá guiá-lo através das etapas para criar uma unidade de serviço systemd e permitir que ela seja iniciada na inicialização.

O que é o systemd?

o systemd é um sistema de inicialização que substitui os 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 a sua estrutura de ficheiros unitários, o systemd fornece uma forma flexível de gerir serviços, sockets, 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 o seu ficheiro de unidade de serviço para verificar a diretiva WorkingDirectory:

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

Encontre a linha WorkingDirectory. Deve ter o seguinte aspeto ( Procurar: Criar o ficheiro de unidade de serviço):

WorkingDirectory=/etc/systemd/myapp

Verifique se o diretório especificado existe:

ls -l /etc/systemd/myapp

* /path/to/myapp – substitua pelo caminho atual que pretende utilizar. Se receber um erro a indicar 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 utilizador especificado na diretiva User do seu serviço possa aceder ao mesmo. 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 uma aplicação personalizada chamada myapp, deve executar:
    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
  •  [Unit]: 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.
  • [Service]: 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.
      • Restart: 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.
  • [Install]: Esta secçã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 utilizador.

Passo 3: Verificar as permissões

Verifique se o utilizador tem as permissões corretas para aceder ao diretório de trabalho:

ls -ld /etc/systemd/myapp

Certifique-se de que as permissões permitem ao utilizador ler e executar ficheiros neste diretório.

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

Certifique-se de que a sua aplicação pode ser executada a partir deste diretório de trabalho. Pode testar isto mudando para o utilizador e navegando para o diretório:

sudo -u myuser bash
cd /etc/systemd/myapp
/usr/bin/myapp
Verifique se ele é executado sem nenhum erro. 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 estado do serviço para ver se foi iniciado com êxito:

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 precisar parar o serviço ou impedir que ele seja iniciado na inicialização, pode usar os seguintes comandos:

  • Para parar o serviço:
    sudo systemctl stop myapp.service
  • Para desativar o início do serviço no arranque:
    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 inicie automaticamente com seu 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 esses passos, você pode efetivamente configurar e gerenciar 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