Como descubro a versão atualmente em execução do tmux?
138
Eu sei que eu posso correr tmux -Vpara encontrar a versão do tmuxque está no meu PATH, mas como posso obter a versão do tmuxque está actualmente em execução ?
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.9acom 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
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.
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
tmux -V
Respostas:
A maneira mais óbvia, mas não 100% correta, é executar este comando no console
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 parapara ver o PID de todos os processos tmux atualmente em execução. Ele produzirá algo como isto
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
para obter informações sobre o processo do servidor tmux ATUALIZADO ATUALMENTE (no meu caso, seu 19701) que produzirá algo como isto (Figura 1)
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
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ãoou, se o tmux foi instalado por um usuário limitado em
/home/user/bin/tmux
,E, como resultado, você obterá a versão do tmux atualmente em execução, não a que foi instalada.
fonte
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 caminhoComo apontado em um comentário,
tmux -V
retorna a versão:Testado no Centos 7 e OSX 10.11.5.
fonte
Para encontrar a versão atual do tmux em execução, você deve encontrar o PID do tmux:
Com essas informações, você pode verificar a versão executando:
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:
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:
Ou se você estiver no Linux, isso sempre funciona:
fonte
Para obter a versão do servidor tmux, você pode usar display-message.
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.
fonte
/proc
truque é somente Linux (e, possivelmente, Solaris etc, mas geralmente não portátil)