DEV Community

Henrique Marques Fernandes
Henrique Marques Fernandes

Posted on • Originally published at marquesfernandes.com on

1

Criando um Serviço Linux com systemd

Frequentemente vejo a necessidade de criar algum programa ou script que precisa estar sempre rodando na máquina, e também quando o computador é reiniciado.

Existem algumas ferramentas para resolver esse trabalho, mas sempre considere usar soluções embutidas em seu sistema operacional primeiro.

É muito fácil criar um serviço Linux, você pode criar um serviço que rode qualquer script ou programa em qualquer linguagem de programação, e tornar esse sistema persistente e resiliente como um serviço em sua máquina.

Nesse artigo vamos usar o systemd para gerenciar nosso serviço, ele está presente na maioria das distribuições linux como Ubuntu, Debian, OpenSuse…

Criando o Programa

Vamos criar uma aplicação web simples em NodeJs de exemplo. Ele vai escutar na porta 9999 e retornar a data atual.

const http = require('http');http.createServer(function (req, res) { res.write(new Date().toString()); res.end();}).listen(9999);

Vamos testar, no navegador entre em http://localhost:9999.

Agora que validamos que nosso programa funciona, vamos fazer com que ele rode sempre, se por algum motivo ele parar de funcionar deve ser restartado e caso a máquina seja reiniciada o serviço precisa iniciar também.

Criando o Serviço

Chamerei nosso serviço de webdate, com o seu editor de terminal preferido cria um arquivo no caminho /etc/systemd/system/webdate.service.

[Unit]Description=WebDate - Serviço Web de DataAfter=network.targetStartLimitIntervalSec=0[Service]Type=simpleRestart=alwaysRestartSec=1User=centosExecStart=/usr/bin/node /caminho/arquivo.js[Install]WantedBy=multi-user.target

Você precisará alterar as seguintes variáveis:

  • User= : Coloquei o seu usuário atual, ele será o usuário que executará o serviço
  • ExecStart= : Esse é o caminho para o script que será executado, você precisa fornecer primeiro o caminho completo para a linha de comando no, normalmente, /usr/bin/node e em seguida o caminho completo para o seu arquivo.

Agora para iniciar o nosso serviço basta executar o seguinte comando:

systemctl start webdate

Para habilitar a inicialização automática quando o sistema é ligado:

systemctl enable webdate

Pronto, agora seu serviço já está executando e configurado para reiniciar em caso de falha e iniciar automaticamente junto com o sistema. Para parar o serviço basta executar o seguinte comando:

systemctl stop webdate

O post Criando um Serviço Linux com systemd apareceu primeiro em Henrique Marques Fernandes.

Do your career a big favor. Join DEV. (The website you're on right now)

It takes one minute, it's free, and is worth it for your career.

Get started

Community matters

Top comments (0)

AWS Security LIVE!

Tune in for AWS Security LIVE!

Join AWS Security LIVE! for expert insights and actionable tips to protect your organization and keep security teams prepared.

Learn More

👋 Kindness is contagious

Immerse yourself in a wealth of knowledge with this piece, supported by the inclusive DEV Community—every developer, no matter where they are in their journey, is invited to contribute to our collective wisdom.

A simple “thank you” goes a long way—express your gratitude below in the comments!

Gathering insights enriches our journey on DEV and fortifies our community ties. Did you find this article valuable? Taking a moment to thank the author can have a significant impact.

Okay