Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Script execute de formas difentes quando uso bash ou ./

Pessoal,

Apos seguir os passos notei que o script so funciona para mim quando eu executo usando o bash ao inves do ./ antes do arquivo.

Meu script check_nginx.sh:

#!/bin/bash

if pgrep nginx &> /dev/null
then
    echo "Nginx esta operando $( date +"%Y-%m-%d %H:%M:%S")"
else
    echo "Nginx fora de operacao $( date +"%Y-%m-%d %H:%M:%S")"
fi

Quando uso ./check_nginx.sh ele sempre retorna a condicional como verdadeira. Quando uso bash check_nginx.sh o script funciona normalmente.

Alguma luz?

2 respostas
solução!

Acabei encontrando o problema!

Quando uso ./check_nginx.sh, o nome do script eh indexado ao PID ai o comando if pgrep nginx &> /dev/null dentro do script acaba pegando o PID do proprio nome do script.

Quando uso bash check_nginx.sh isso nao ocorre porque o PID eh indexado ao bash

Quando mudo o nome do script para check_webserver.sh ai funciona belezinha.

Oi, Murilo!

Fico feliz que tenha encontrado o erro.

Bons estudos!