मुझे पता है कि मैं tmux -V
उसी के संस्करण को खोजने के लिए चला सकता tmux
हूं PATH
, लेकिन मैं उस संस्करण को कैसे प्राप्त कर सकता हूं tmux
जो वर्तमान में चल रहा है ?
मुझे पता है कि मैं tmux -V
उसी के संस्करण को खोजने के लिए चला सकता tmux
हूं PATH
, लेकिन मैं उस संस्करण को कैसे प्राप्त कर सकता हूं tmux
जो वर्तमान में चल रहा है ?
जवाबों:
सबसे स्पष्ट है, लेकिन कंसोल में इस कमांड को निष्पादित करने का 100% सही तरीका नहीं है
$ tmux -V
और tmux 2.9a
वर्तमान में चल रहे tmux के संस्करण के साथ इस तरह से आउटपुट प्राप्त करते हैं । 99% मामलों में यह पर्याप्त है, लेकिन सूक्ष्म बारीकियां हो सकती हैं।
कमांड tmux -V
आपके PATH वैरिएबल के अंदर / usr / bin / tmux या किसी अन्य निर्देशिका में स्थापित tmux का संस्करण लौटाएगा। यदि आपके पास पहले से चल रहा tmux है, तो संभव है कि tmux को दूसरे संस्करण के बाइनरी से और अलग-अलग जगह से शुरू किया जा सकता है (उदाहरण के लिए, tmux से शुरू किया जा सकता है /home/user/bin/tmux
)। इस मामले में, आपको कॉल करना होगा
$ ps -e | grep tmux
वर्तमान में चल रही सभी tmux प्रक्रियाओं की PID देखने के लिए। यह कुछ इस तरह से आउटपुट करेगा
[vodolaz095@ivory ~]$ ps -e | grep tmux
19699 pts/0 00:00:00 tmux: client
19701 ? 00:00:00 tmux: server
यहाँ, नंबर 19701 में वर्तमान में चल रहे tmux सर्वर के आईडी (PID) को दर्शाया गया है।
Tmux सर्वर की PID प्राप्त करने के बाद, आप कमांड चला सकते हैं
$ lsof -p 19701
CURRENTLY RUNNING tmux सर्वर प्रक्रिया के बारे में जानकारी प्राप्त करने के लिए (मेरे मामले में इसकी 19701) जो कुछ इस तरह से आउटपुट करेगी (चित्र 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
जैसा कि आप देख सकते हैं, वर्तमान में चल रहे tmux को / usr / bin / tmux में रखे बाइनरी से निष्पादित किया गया था।
या, आप एक लाइनर कह सकते हैं
lsof -p `pgrep 'tmux: server'`
चित्रा 1 के रूप में एक ही उत्पादन प्राप्त करने के लिए
जब आप द्विआधारी CURRENTLY RUNNING के लिए रास्ता पा लेते हैं, (मेरे मामले में, यह था /usr/bin/tmux
), आप इस बाइनरी को फ्लैग -V के साथ निष्पादित कर सकते हैं ताकि इसका संस्करण मिल सके
/usr/bin/tmux -V
या, यदि tmux को सीमित उपयोगकर्ता द्वारा स्थापित किया गया था /home/user/bin/tmux
,
/home/user/bin/tmux -V
और, परिणामस्वरूप, आपको वर्तमान में चल रहे tmux का संस्करण मिलेगा, जो कि स्थापित नहीं था।
tmux
दी गई प्रक्रिया शुरू होने के बाद इसे अपग्रेड किया गया है।
ps: option requires an argument -- u
tmux -V
, उबंटू और ओएसएक्स पर परीक्षण किया गया
which tmux
रास्ते का पता लगाने के लिए इस्तेमाल कर सकते हैं
जैसा कि एक टिप्पणी में बताया गया है, tmux -V
संस्करण लौटाता है:
$ tmux -V
# tmux 1.8
Centos 7 और OSX 10.11.5 पर परीक्षण किया गया।
चलने वाले tmux का वास्तविक संस्करण खोजने के लिए, आपको tmux का PID खोजना होगा:
pgrep tmux
इस जानकारी के साथ, आप चलाकर संस्करण की जाँच कर सकते हैं:
lsof -p $tmuxPID | grep REG | grep -i -e deleted -e "tmux$"
यदि सूचीबद्ध tmux फ़ाइल के बगल में (हटाए गए) नहीं है, तो आप बस उस फ़ाइल को a के साथ चला सकते हैं -V
।
यदि यह उन फ़ाइलों में परिणाम करता है जो "(हटाई गई)" हैं, तो आप एक पुराना, अनइंस्टॉल किया गया संस्करण चला रहे हैं। यदि आप लिनक्स पर हैं, तो आप यह पता लगा सकते हैं कि यह क्या चल रहा है:
/proc/$tmuxPID/exe -V`
यदि आप OS X पर हैं, तो फ़ाइल नाम के पथ में जो भी जानकारी है, आप उससे चिपके हुए हैं, संभवतः कुछ ऐसा है Cellar/tmux/<version number>/bin/tmux
।
आप इनमें से कई चरणों को निम्नलिखित एक-लाइनर में जोड़ सकते हैं:
for tmuxPID in $(pgrep tmux); do lsof -p $tmuxPID | grep REG | grep -i -e deleted -e "tmux$"; done
या यदि आप लिनक्स पर हैं, तो यह हमेशा काम करता है:
for tmuxPID in $(pgrep tmux); do /proc/$tmuxPID/exe -V; done
Tmux सर्वर का संस्करण प्राप्त करने के लिए आप प्रदर्शन-संदेश का उपयोग कर सकते हैं।
./tmux2.3 display-message -p "#{version}"
सर्वर का संस्करण दिखाएगा (मेरे मामले में 2.7)
-p स्टडआउट के आउटपुट को निर्देशित करेगा ताकि आप इसके साथ स्क्रिप्ट कर सकें और {पेज} मैन पेज में FORMATS सेक्शन से कुछ भी हो सकता है।
निम्नलिखित आपको अपने tmux सर्वर का निष्पादन योग्य देगा।
realpath /proc/$(tmux display-message -p "#{pid}")/exe
/proc
; हैक केवल (लेकिन आम तौर पर पोर्टेबल नहीं है और संभवत: सोलारिस आदि) लिनक्स है
tmux -V