xwininfo -root -children | grep -q '"Firefox")'
echo "$(($? == 0))"
A saída seria 1 se houvesse uma janela da classe Firefox
conectada ao seu servidor X (por qualquer usuário de qualquer máquina).
Para limitar os processos do Firefox locais à máquina em que você está executando esse comando:
xwininfo -root -children |
awk '/"Firefox"\)/{print $1}' |
xargs -I% xprop -id % WM_CLIENT_MACHINE |
cut -d\" -f2 |
grep -qFx "$(uname -n)"
A pesquisa pelo nome do processo não oferece garantia de que os processos estão realmente exibindo suas janelas no seu servidor X.
O método descrito acima é consistente com a forma como o firefox verifica um firefox atualmente em execução quando não passa a opção --no-remote
.