Pregunta Tmux: comprueba si el servidor está activo


¿Hay alguna conocida tmux-función, como tmux has-session -t <session>, pero para verificar si el tmux servidor se está ejecutando actualmente? Sería útil al escribir scripts de automatización. Al verificar si existe una sesión con

$ tmux has-session -t SomeSession

el usuario, a menos que el servidor tmux ya se esté ejecutando, presente el error

failed to connect to server

Por lo tanto, quiero verificar de antemano si el servidor se está ejecutando actualmente. Si es así, verifique las sesiones, etcétera. ¿Hay alguna forma de silenciar esto sin conectar a / dev / null?


4


origen




Respuestas:


correr

if tmux info &> /dev/null; then 
  echo running
else
  echo not running
fi

10





Puedes usar ps -e | grep -q program para verificar si el programa program se está ejecutando de una manera general.

Como un ejemplo en un shell:

if $(ps -e | grep -q tmux); then echo "Tmux is running."; fi

1



Ayúdame a aclarar esto. Estás tratando el comando $(ps -e | grep -q tmux) como un booleano ya que la mayoría de los comandos de shell regresan true/falsedependiendo del código de salida? - krystah
@krystah Sí exactamente. grep el código de salida es exitoso solo si se encuentra al menos una coincidencia, y cambia -q suprimir su salida. - Levans
YMMV. El problema con esto es que puede haber otros procesos que tienen la cadena program en ellos. Por ejemplo, el proceso en ejecución grep -q program en realidad causará una coincidencia (al menos en mi sistema) o un archivo de texto abierto como vim program-not-running.txt. Por lo tanto, esto no funciona para mí porque siempre devuelve verdadero si tmux se está ejecutando o no. El comprador tenga cuidado. - bnjmn