Como Executar um Comando curl Após o Reinício do Linux (webhook)

Se você precisa automatizar a execução de um comando curl após o reinício do seu servidor Linux, existem várias maneiras de garantir que isso aconteça sem a necessidade de intervenção manual. Abaixo, exploramos três formas populares de configurar esse processo.

Usando o rc.local

O arquivo rc.local permite que você execute comandos após o sistema ser inicializado. Para usá-lo, edite o arquivo /etc/rc.local e adicione o comando curl antes da linha exit 0. Isso garante que o comando será executado sempre que o servidor reiniciar. Não se esqueça de garantir que o arquivo tenha permissões de execução. Além disso, se preferir evitar a impressão de logs ou saídas do comando, você pode redirecionar a saída para /dev/null.

Exemplo de código no rc.local:

curl "http://localhost:5678/webhook-test/ba5e4060-4bd5-47e4-909e-e0187f54e292?mensagem=Este%20Servidor%20Foi%20Ligado" > /dev/null 2>&1

Usando o Systemd

O Systemd é uma solução moderna e muito mais robusta para executar comandos automaticamente após o sistema iniciar. Para isso, você pode criar um serviço personalizado no Systemd. O serviço será executado no boot, e você poderá definir exatamente quando e como ele será chamado. Após criar o arquivo de serviço, ative-o para garantir que ele seja executado no próximo reinício.

Exemplo de código no arquivo de serviço do Systemd:

[Unit]
Description=Enviar webhook ao reiniciar o sistema
After=network.target

[Service]
ExecStart=/usr/bin/curl "http://localhost:5678/webhook-test/ba5e4060-4bd5-47e4-909e-e0187f54e292?mensagem=Este%20Servidor%20Foi%20Ligado" > /dev/null 2>&1
Type=oneshot

[Install]
WantedBy=multi-user.target

Usando o Crontab

Se você já está familiarizado com o cron, pode usar o @reboot no crontab para executar o comando sempre que o sistema for reiniciado. Isso é uma forma rápida e simples de garantir que o comando curl seja chamado ao boot.

Exemplo de código no crontab:

@reboot curl "http://localhost:5678/webhook-test/ba5e4060-4bd5-47e4-909e-e0187f54e292?mensagem=Este%20Servidor%20Foi%20Ligado" > /dev/null 2>&1

Conclusão

Qualquer um desses métodos pode ser usado para garantir que o comando curl seja executado automaticamente após o reinício do sistema. A escolha entre rc.local, Systemd ou Crontab depende das suas necessidades e do ambiente em que você está trabalhando. Se você deseja uma solução mais moderna e robusta, o Systemd é a melhor escolha. Para uma abordagem mais simples e rápida, o Crontab pode ser suficiente.

Rolar para cima