Quando cron
é executado em /root/auto-restart.sh
, ele é executado usando sh
, nas linhas de sh -c /root/auto-restart.sh
. Como você usou a opção -f
com pgrep
, pgrep
procura auto-restart.sh
em qualquer lugar nas linhas de comando dos processos em execução; então combina auto-restart.sh
e sh -c /root/auto-restart.sh
. Este último aparece como sh
na saída de pgrep -l
.
pgrep -c auto-restart.sh
lhe dará o comportamento que você está procurando. (Eu perdi -l
porque não tem sentido com -c
.)
(Seu servidor provavelmente tem um timer de watchdog , que pode ser mais apropriado - embora eu imagine que, se o servidor estiver ainda funcionando suficientemente bem para executar trabalhos cron, mas é considerado baixo, então o cão de guarda não tropeçaria.)