Como criar um serviço para ser executado em conjunto com o Linux

Requisitos

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:

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

Links úteis