Como criar um serviço para ser executado em conjunto com o Linux
Requisitos
- Conhecimentos básicos de Linux
Introdução
Este tutorial mostra como criar um serviço para ficar executando em conjunto com o Linux e ainda quando o sistema for reiniciado o serviço também será iniciado.
Na maioria das vezes quando criamos um script em PHP, NodeJS, Python ou qualquer outra linguagem de programação, precisamos executar o script manualmente para que ele funcione, mas e se você quiser que o script seja executado em conjunto com o Linux, ou seja, quando o sistema for iniciado o script também será iniciado, e quando o sistema for reiniciado o script também será reiniciado.
Criando o arquivo de configuração do serviço e manipulando o serviço
Para criar o serviço, precisamos criar um arquivo de configuração para o serviço, o arquivo de configuração do serviço deve ser criado na pasta /etc/systemd/system/
e o nome do arquivo deve ser o nome do serviço com a extensão .service
, por exemplo, se o nome do serviço for meu-servico
, o nome do arquivo de configuração do serviço será meu-servico.service
.
O conteúdo do arquivo de configuração do serviço deve ser o seguinte:
[Unit]
Description=Bot em PHP
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=1
User=root
ExecStart=/usr/bin/php /var/www/html/meu-bot.php
[Install]
WantedBy=multi-user.target
Onde:
Description
é a descrição do serviço, que será exibida quando o comandosystemctl status meu-servico
for executado.After
é o serviço que deve ser iniciado antes do serviço que estamos criando.StartLimitIntervalSec
é o intervalo de tempo em segundos que o serviço será reiniciado.Type
é o tipo de serviço, no nosso caso ésimple
.Restart
é a política de reinício do serviço, no nosso caso éalways
.RestartSec
é o intervalo de tempo em segundos que o serviço será reiniciado.User
é o usuário que irá executar o serviço, no nosso caso é o usuárioroot
.ExecStart
é o comando que irá executar o serviço, no nosso caso é o comando/usr/bin/php /var/www/html/meu-bot.php
. Note que não usando apenas o comandophp /var/www/html/meu-bot.php
pois o comandophp
pode não estar noPATH
do usuárioroot
, então é necessário usar o caminho completo do comandophp
.WantedBy
é o serviço que deve ser iniciado após o serviço que estamos criando.
Iniciando o serviço
Para iniciar o serviço, execute o comando:
systemctl start meu-servico
Verificando o status do serviço
Para verificar o status do serviço, execute o comando:
systemctl status meu-servico
Habilitando o serviço para ser iniciado junto com o Linux
Para habilitar o serviço para ser iniciado junto com o Linux, execute o comando:
systemctl enable meu-servico
Desabilitando o serviço para ser iniciado junto com o Linux
Para desabilitar o serviço para ser iniciado junto com o Linux, execute o comando:
systemctl disable meu-servico
Parando o serviço
Para parar o serviço, execute o comando:
systemctl stop meu-servico
Reiniciando o serviço
Para reiniciar o serviço, execute o comando:
systemctl restart meu-servico
Verificando o log do serviço
Para verificar o log do serviço, execute o comando:
journalctl -u meu-servico
Verificando o log do serviço em tempo real
Para verificar o log do serviço em tempo real, execute o comando:
journalctl -u meu-servico -f