Estou tentando detectar se um processo ( goland.sh
) está em execução. Eu usei isso:
#!/bin/bash
if pgrep "goland.sh" >/dev/null 2>&1 ; then
echo "running"
exit 1
fi
echo "not running"
Isso funciona, mas não entendo duas coisas:
- Por que se eu usar
if [[ pgrep "goland.sh" >/dev/null 2>&1 ]] ; then
não funciona (sempre imprime 'running' mesmo que o processo não esteja em execução) - Por que se eu usar
if [ pgrep "goland.sh" >/dev/null 2>&1 ] ; then
não funciona (sempre imprime 'running' mesmo que o processo não esteja em execução)
Eu suspeito que 1 tem algo a ver com a forma como >
é analisado, mas estou totalmente sem noção sobre 2.