Respostas:
A maneira mais óbvia, mas não 100% correta, é executar este comando no console
$ tmux -V
e receba uma saída como esta tmux 2.9a
com a versão do tmux INSTALLED, que não está em execução no momento. Em 99% dos casos, é suficiente, mas pode haver nuances sutis.
O comando tmux -V
retornará a versão do tmux instalada em / usr / bin / tmux ou em qualquer outro diretório dentro da sua variável PATH. Se você já possui o tmux em execução, é possível que o tmux possa ser iniciado a partir do binário de outra versão e de outro local (por exemplo, o tmux pode ser iniciado a partir de /home/user/bin/tmux
). Nesse caso, você deve ligar para
$ ps -e | grep tmux
para ver o PID de todos os processos tmux atualmente em execução. Ele produzirá algo como isto
[vodolaz095@ivory ~]$ ps -e | grep tmux
19699 pts/0 00:00:00 tmux: client
19701 ? 00:00:00 tmux: server
Aqui, o número 19701 mostra a identificação do processo (PID) do servidor tmux atualmente em execução.
Após obter o PID do servidor tmux, você pode executar o comando
$ lsof -p 19701
para obter informações sobre o processo do servidor tmux ATUALIZADO ATUALMENTE (no meu caso, seu 19701) que produzirá algo como isto (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
como você pode ver, o tmux atualmente em execução foi executado a partir do binário colocado em / usr / bin / tmux.
Ou você pode ligar para um forro
lsof -p `pgrep 'tmux: server'`
para obter a mesma saída da Figura 1
Depois de encontrar o caminho para o binário tmux ATUALIZADO ATUALMENTE (no meu caso /usr/bin/tmux
), você pode executar esse binário com o sinalizador -V para obter sua versão
/usr/bin/tmux -V
ou, se o tmux foi instalado por um usuário limitado em /home/user/bin/tmux
,
/home/user/bin/tmux -V
E, como resultado, você obterá a versão do tmux atualmente em execução, não a que foi instalada.
tmux
tiver sido atualizado desde que o processo fornecido foi iniciado.
ps: option requires an argument -- u
tmux -V
, teste no Ubuntu e OSX #
which tmux
para descobrir o caminho
Como apontado em um comentário, tmux -V
retorna a versão:
$ tmux -V
# tmux 1.8
Testado no Centos 7 e OSX 10.11.5.
Para encontrar a versão atual do tmux em execução, você deve encontrar o PID do tmux:
pgrep tmux
Com essas informações, você pode verificar a versão executando:
lsof -p $tmuxPID | grep REG | grep -i -e deleted -e "tmux$"
Se não houver um (excluído) ao lado do arquivo tmux listado, você pode simplesmente executá-lo com a -V
.
Se resultar em arquivos "(excluídos)", você está executando uma versão antiga e desinstalada. Se você estiver no linux, poderá descobrir o que é executando:
/proc/$tmuxPID/exe -V`
Se você está no OS X, está preso a qualquer informação que esteja no caminho para o nome do arquivo, possivelmente algo parecido Cellar/tmux/<version number>/bin/tmux
.
Você pode combinar muitas dessas etapas na seguinte linha única:
for tmuxPID in $(pgrep tmux); do lsof -p $tmuxPID | grep REG | grep -i -e deleted -e "tmux$"; done
Ou se você estiver no Linux, isso sempre funciona:
for tmuxPID in $(pgrep tmux); do /proc/$tmuxPID/exe -V; done
Para obter a versão do servidor tmux, você pode usar display-message.
./tmux2.3 display-message -p "#{version}"
Vai mostrar a versão do servidor (2.7 no meu caso)
-p direcionará a saída do stdout para que você possa escrever com ele e {version} possa ser qualquer coisa da seção FORMATS na página de manual.
O seguinte fornecerá o executável do seu servidor tmux.
realpath /proc/$(tmux display-message -p "#{pid}")/exe
/proc
truque é somente Linux (e, possivelmente, Solaris etc, mas geralmente não portátil)
tmux -V