Risposte:
Il modo più ovvio, ma non corretto al 100%, è eseguire questo comando in console
$ tmux -V
e ricevere output in questo modo tmux 2.9a
con la versione di tmux INSTALLATA, attualmente non in esecuzione. Nel 99% dei casi è sufficiente, ma possono esserci sottili sfumature.
Il comando tmux -V
restituirà la versione di tmux installata in / usr / bin / tmux o qualsiasi altra directory all'interno della variabile PATH. Se tmux è già in esecuzione, è possibile che tmux possa essere avviato da file binari di altre versioni e da posizioni diverse (ad esempio, è possibile avviare tmux /home/user/bin/tmux
). In questo caso, devi chiamare
$ ps -e | grep tmux
per visualizzare il PID di tutti i processi tmux attualmente in esecuzione. Produrrà qualcosa del genere
[vodolaz095@ivory ~]$ ps -e | grep tmux
19699 pts/0 00:00:00 tmux: client
19701 ? 00:00:00 tmux: server
Qui, il numero 19701 descrive l'id di processo (PID) del server tmux attualmente in esecuzione.
Dopo aver ottenuto il PID del server tmux, è possibile eseguire il comando
$ lsof -p 19701
per ottenere informazioni sul processo tmux server CORRENTLY RUNNING (nel mio caso il suo 19701) che produrrà qualcosa del genere (Figura 1)
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
tmux:\x20 19701 vodolaz095 cwd DIR 8,33 4096 22544385 /home/vodolaz095
tmux:\x20 19701 vodolaz095 rtd DIR 8,1 4096 2 /
tmux:\x20 19701 vodolaz095 txt REG 8,1 677760 3675332 /usr/bin/tmux
tmux:\x20 19701 vodolaz095 mem REG 8,1 6406312 131327 /var/lib/sss/mc/group
come puoi vedere, tmux attualmente in esecuzione è stato eseguito da binario collocato in / usr / bin / tmux.
Oppure puoi chiamare una linea
lsof -p `pgrep 'tmux: server'`
per ottenere lo stesso risultato della Figura 1
Dopo aver percorso il binario di tmux CURRENTLY RUNNING, (nel mio caso lo era /usr/bin/tmux
), puoi eseguire questo binario con flag -V per ottenere la sua versione
/usr/bin/tmux -V
o, se tmux è stato installato da un utente limitato in /home/user/bin/tmux
,
/home/user/bin/tmux -V
E, di conseguenza, otterrai la versione di tmux attualmente in esecuzione, non quella installata.
tmux
è stato aggiornato dall'avvio del processo dato.
ps: option requires an argument -- u
tmux -V
, testato su Ubuntu e OSX
which tmux
per scoprire il percorso
Come sottolineato in un commento, tmux -V
restituisce la versione:
$ tmux -V
# tmux 1.8
Testato su Centos 7 e OSX 10.11.5.
Per trovare la versione effettiva di tmux in esecuzione, devi trovare il PID di tmux:
pgrep tmux
Con queste informazioni, puoi verificare la versione eseguendo:
lsof -p $tmuxPID | grep REG | grep -i -e deleted -e "tmux$"
Se non è presente un (eliminato) accanto al file tmux elencato, puoi semplicemente eseguire quel file con un -V
.
Se risulta in file "(eliminati)", è in esecuzione una versione precedente e disinstallata. Se sei su Linux, puoi capire di cosa si tratta eseguendo:
/proc/$tmuxPID/exe -V`
Se sei su OS X, sei bloccato con qualsiasi informazione si trovi nel percorso del nome file, forse qualcosa del genere Cellar/tmux/<version number>/bin/tmux
.
Puoi combinare molti di questi passaggi nel seguente one-liner:
for tmuxPID in $(pgrep tmux); do lsof -p $tmuxPID | grep REG | grep -i -e deleted -e "tmux$"; done
O se sei su Linux, funziona sempre:
for tmuxPID in $(pgrep tmux); do /proc/$tmuxPID/exe -V; done
Per ottenere la versione del server tmux è possibile utilizzare display-message.
./tmux2.3 display-message -p "#{version}"
Mostrerà la versione del server (2.7 nel mio caso)
-p dirigerà l'output di stdout in modo che tu possa eseguire lo script con esso e {versione} può essere qualsiasi cosa dalla sezione FORMATI nella pagina man.
Quanto segue ti fornirà l'eseguibile del tuo server tmux.
realpath /proc/$(tmux display-message -p "#{pid}")/exe
/proc
hacking è solo Linux (e forse Solaris ecc; ma non generalmente portatile)
tmux -V