Executar
if tmux info &> /dev/null; then
echo running
else
echo not running
fi
Existe alguma função tmux
conhecida, como tmux has-session -t <session>
, mas para verificar se o servidor tmux está atualmente em execução? Seria útil ao escrever scripts de automação. Ao verificar se existe uma sessão com
$ tmux has-session -t SomeSession
o usuário é, a menos que o servidor tmux já esteja rodando, apresentando o erro
failed to connect to server
Portanto, desejo verificar de antemão se o servidor está em execução no momento. Se for, verifique se há sessões etc. Existe alguma maneira de silenciar isso sem canalizar para / dev / null?
Executar
if tmux info &> /dev/null; then
echo running
else
echo not running
fi
[[ -n $(pgrep tmux) ]] && echo true || echo false
Se um processo com o nome "tmux" estiver em execução, isso será impresso como true, caso contrário, ele será impresso como falso.
Isso funciona porque o pgrep encontra todo o processo com "tmux" em seus nomes e retorna seus PIDs. O "-n" basicamente testa se a saída de $ (pgrep tmux) existe. Se a saída existir (ex. "14204 23137"), o teste será avaliado como verdadeiro. Se a saída não existir (ou for indefinida), o teste será avaliado como falso.
Se você prefere o formato longo:
if [[ -n $(pgrep tmux) ]]; then
echo true
else
echo false
fi
Observe que o que o bnjmn disse se aplica aqui. Ou seja, isso dará um falso positivo se um processo estiver sendo executado diferente do tmux, mas tiver "tmux" em seu nome.
Você pode usar ps -e | grep -q program
para verificar se o programa program
está sendo executado de maneira geral.
Como exemplo em um shell:
if $(ps -e | grep -q tmux); then echo "Tmux is running."; fi
Tags command-line tmux terminal