Bagaimana cara mengetahui versi tmux yang sedang berjalan?
138
Saya tahu bahwa saya dapat menjalankan tmux -Vuntuk menemukan versi tmuxyang ada di saya PATH, tetapi bagaimana saya bisa mendapatkan versi tmuxyang sedang berjalan ?
Paling jelas, tetapi tidak 100% cara yang benar adalah dengan menjalankan perintah ini di konsol
$ tmux -V
dan terima keluaran seperti ini tmux 2.9adengan versi tmux INSTALLED, saat ini tidak berjalan. Dalam 99% kasus sudah cukup, tetapi mungkin ada nuansa halus.
Perintah tmux -V akan mengembalikan versi tmux yang diinstal di / usr / bin / tmux atau direktori lain di dalam variabel PATH Anda. Jika Anda telah menjalankan tmux, ada kemungkinan tmux dapat dimulai dari biner versi lain dan dari tempat yang berbeda (misalnya, tmux dapat dimulai dari /home/user/bin/tmux). Dalam hal ini, Anda harus menelepon
$ ps -e | grep tmux
untuk melihat PID dari semua proses tmux yang sedang berjalan. Ini akan menampilkan sesuatu seperti ini
Di sini, angka 19701 menggambarkan proses id (PID) dari server tmux yang sedang berjalan.
Setelah mendapatkan PID dari server tmux, Anda dapat menjalankan perintah
$ lsof -p 19701
untuk mendapatkan informasi tentang proses server tmux SAAT INI MENJALANKAN (dalam kasus saya tahun 19701) yang akan menampilkan sesuatu seperti ini (Gambar 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
seperti yang Anda lihat, tmux yang sedang berjalan dijalankan dari binary yang ditempatkan di / usr / bin / tmux.
Atau, Anda dapat menghubungi satu liner
lsof -p `pgrep 'tmux: server'`
untuk mencapai hasil yang sama seperti Gambar 1
Setelah Anda mendapatkan path ke tmux binary SAAT INI MENJALANKAN, (dalam kasus saya, itu /usr/bin/tmux), Anda dapat menjalankan biner ini dengan flag -V untuk mendapatkan versinya
/usr/bin/tmux -V
atau, jika tmux diinstal oleh pengguna terbatas ke /home/user/bin/tmux,
/home/user/bin/tmux -V
Dan, sebagai hasilnya, Anda akan mendapatkan versi tmux yang sedang berjalan, bukan versi yang diinstal.
Ini harus menjadi jawaban yang dipilih. Juga menguji ini di Amazon Linux 👍
Brady Dowling
7
Saya tidak berpikir ini menjawab pertanyaan. Saya tidak yakin mengapa itu dinilai sangat tinggi. Perintah itu hanya mengembalikan versi tmux apa pun yang ada di jalur saya.
quant
4
Itu karena ini muncul sebagai hasil pertama dari Cara mendapatkan versi tmux .
Derek 朕 會 功夫
jangan membenci pemain, benci permainan
sixty4bit
13
Untuk menemukan versi aktual tmux yang sedang berjalan, Anda harus menemukan PID dari tmux:
pgrep tmux
Dengan info ini, Anda dapat memeriksa versi dengan menjalankan:
Jika tidak ada (dihapus) di sebelah file tmux yang terdaftar, Anda bisa menjalankan file itu dengan a -V.
Jika itu menghasilkan file yang "(dihapus)", Anda menjalankan versi lama, yang dihapus. Jika Anda menggunakan linux, Anda dapat mengetahui apa itu dengan menjalankan:
/proc/$tmuxPID/exe -V`
Jika Anda menggunakan OS X, Anda terjebak dengan informasi apa pun yang ada di jalur ke nama file, mungkin sesuatu seperti Cellar/tmux/<version number>/bin/tmux.
Anda dapat menggabungkan banyak langkah ini ke dalam satu-baris berikut:
for tmuxPID in $(pgrep tmux); do lsof -p $tmuxPID | grep REG | grep -i -e deleted -e "tmux$"; done
Atau jika Anda menggunakan Linux, ini selalu berhasil:
for tmuxPID in $(pgrep tmux); do /proc/$tmuxPID/exe -V; done
tmux -V
Jawaban:
Paling jelas, tetapi tidak 100% cara yang benar adalah dengan menjalankan perintah ini di konsol
dan terima keluaran seperti ini
tmux 2.9a
dengan versi tmux INSTALLED, saat ini tidak berjalan. Dalam 99% kasus sudah cukup, tetapi mungkin ada nuansa halus.Perintah
tmux -V
akan mengembalikan versi tmux yang diinstal di / usr / bin / tmux atau direktori lain di dalam variabel PATH Anda. Jika Anda telah menjalankan tmux, ada kemungkinan tmux dapat dimulai dari biner versi lain dan dari tempat yang berbeda (misalnya, tmux dapat dimulai dari/home/user/bin/tmux
). Dalam hal ini, Anda harus meneleponuntuk melihat PID dari semua proses tmux yang sedang berjalan. Ini akan menampilkan sesuatu seperti ini
Di sini, angka 19701 menggambarkan proses id (PID) dari server tmux yang sedang berjalan.
Setelah mendapatkan PID dari server tmux, Anda dapat menjalankan perintah
untuk mendapatkan informasi tentang proses server tmux SAAT INI MENJALANKAN (dalam kasus saya tahun 19701) yang akan menampilkan sesuatu seperti ini (Gambar 1)
seperti yang Anda lihat, tmux yang sedang berjalan dijalankan dari binary yang ditempatkan di / usr / bin / tmux.
Atau, Anda dapat menghubungi satu liner
untuk mencapai hasil yang sama seperti Gambar 1
Setelah Anda mendapatkan path ke tmux binary SAAT INI MENJALANKAN, (dalam kasus saya, itu
/usr/bin/tmux
), Anda dapat menjalankan biner ini dengan flag -V untuk mendapatkan versinyaatau, jika tmux diinstal oleh pengguna terbatas ke
/home/user/bin/tmux
,Dan, sebagai hasilnya, Anda akan mendapatkan versi tmux yang sedang berjalan, bukan versi yang diinstal.
sumber
tmux
telah ditingkatkan sejak proses yang diberikan dimulai.ps: option requires an argument -- u
tmux -V
, diuji pada Ubuntu dan OSXwhich tmux
untuk mencari tahu jalannyaSeperti yang ditunjukkan dalam komentar,
tmux -V
kembalikan versi:Diuji pada Centos 7 dan OSX 10.11.5.
sumber
Untuk menemukan versi aktual tmux yang sedang berjalan, Anda harus menemukan PID dari tmux:
Dengan info ini, Anda dapat memeriksa versi dengan menjalankan:
Jika tidak ada (dihapus) di sebelah file tmux yang terdaftar, Anda bisa menjalankan file itu dengan a
-V
.Jika itu menghasilkan file yang "(dihapus)", Anda menjalankan versi lama, yang dihapus. Jika Anda menggunakan linux, Anda dapat mengetahui apa itu dengan menjalankan:
Jika Anda menggunakan OS X, Anda terjebak dengan informasi apa pun yang ada di jalur ke nama file, mungkin sesuatu seperti
Cellar/tmux/<version number>/bin/tmux
.Anda dapat menggabungkan banyak langkah ini ke dalam satu-baris berikut:
Atau jika Anda menggunakan Linux, ini selalu berhasil:
sumber
Untuk mendapatkan versi server tmux Anda dapat menggunakan tampilan-pesan.
Akan menampilkan versi server (2,7 dalam kasus saya)
-p akan mengarahkan output stdout sehingga Anda dapat skrip dengannya dan {version} bisa apa saja dari bagian FORMATS di halaman manual.
Berikut ini akan memberi Anda executable dari server tmux Anda.
sumber
/proc
hack adalah Linux saja (dan mungkin Solaris dll, tetapi umumnya tidak portabel)