tmux “স্ক্রিন-আর” এর সমতুল্য?


10

tmux attachকমান্ড আরো একটি সমন্বয় মত কাজ করে screen -rএবং screen -x- প্রথম এটা সবচেয়ে সম্প্রতি সংযুক্ত করতে trys বিচু্যত অধিবেশন, এবং তারপর যদি কেউ উপলব্ধ একটি বর্তমানে সংযুক্ত অধিবেশন সংযুক্ত হবে। আমি এর আচরণ অনুকরণ করতে চাই screen -R: প্রথমে একটি বিচ্ছিন্ন অধিবেশন সংযুক্ত করার চেষ্টা করুন, তারপরে কোনও বিচ্ছিন্ন সেশন না থাকলে একটি নতুন অধিবেশন শুরু করুন। Tmux এ অর্জন করার সর্বোত্তম উপায় কী?

উত্তর:


12

আইআরসি-র উইজার্ডগুলির সাথে পরামর্শ করার পরে আমি আত্মবিশ্বাসী যে কোনও একক tmux কমান্ড নেই যার আচরণ রয়েছে। ভাগ্যক্রমে, শেলটি ব্যবহার করে অনুকরণ করা মোটামুটি সহজ:

(tmux ls | grep -vq attached && tmux at) || tmux

ছোট্ট সম্পাদনাটি "সার্ভারের সাথে সংযোগ করতে ব্যর্থ হয়েছে: সংযোগ অস্বীকার করেছে" আপনি নতুন অধিবেশনটি চালু করছেন এমন ইভেন্টের আউটপুট:(tmux ls 2>/dev/null | grep -vq attached && tmux at) || tmux
l8nite

3

এটি tmux ম্যানুয়ালটিতে যা বলেছে তা সত্ত্বেও:

             The target-session rules for attach-session are slightly
         adjusted: if tmux needs to select the most recently used session,
         it will prefer the most recently used unattached session.

ড্রয়ের উত্তর ঠিক মতো কাজ করবে না:

0: 1 windows (created Wed Nov  7 23:51:08 2012) [177x47]
1: 1 windows (created Wed Nov  7 23:51:33 2012) [177x47] (attached)

tmux atশেষ সেশনে সংযুক্ত হবে (# 1) (যদিও এই সেশনটি অন্য কোথাও সংযুক্ত রয়েছে)। এটি বেশ কয়েকটি টিএমউक्स সেশন পরিচালনা করার এবং শুধুমাত্র একটি বিচ্ছিন্ন ব্যক্তির সাথে সংযুক্ত করার পুরো ধারণাটিকে নষ্ট করে দেয় (নিখুঁত রোমিং টার্মিনাল তৈরি করতে মোশ + টিএমক্স + আইটর্ম 2 ব্যবহার করতে)।

আর একটি উপায় হ'ল ম্যানুয়ালি একটি অ-সংযুক্ত অধিবেশন নির্বাচন করা:

tmux ls | grep -vq attached && tmux at `tmux ls | grep -vm1 attached | cut -d: -f1`


ভালো বল ধরা! প্রকৃত আচরণের সাথে ডকুমেন্টেশন সিঙ্কের বাইরে। আমি এটির জন্য একটি বাগ রিপোর্ট তৈরি করেছি ।
ড্রয় ফ্র্যাঙ্ক

একটি প্যাচ বাইরে রয়েছে যা এটি স্থির করে, তাই পরবর্তী প্রকাশের মাধ্যমে এটি বিজ্ঞাপন হিসাবে আচরণ করা উচিত।
ড্রয় ফ্র্যাঙ্ক

প্যাচটি কি 1.8 এ?
মোমারা

2

আমি একবারে কেবল দুটি টিএমএক্স সেশন রাখি, তাই প্রতিটি টার্মিনাল উইন্ডোতে আমি এরকম কিছু করি।

টার্মিনাল উইন্ডো 0:

tmux attach -t 0 || tmux new

টার্মিনাল উইন্ডো 1:

tmux attach -t 1 || tmux new

2

এটি আমার পক্ষে সবচেয়ে ভাল কাজ করেছে:

if [ -z "$TMUX" ]; then
     (tmux ls | grep -vq attached && tmux at -t `tmux ls | grep -vm1 attached | cut -d: -f1`) || tmux new
fi

এটি সঠিক সেশনে সংযুক্ত করার জন্য প্রয়োজনীয় t


1

কি সম্পর্কে

tmux attach || tmux new

অথবা পরিবর্তে কেবল ফাইলটি তৈরি করুন ~/.tmux.confযদি এটি বিদ্যমান না থাকে এবং যুক্ত করুন

new-session

এটি এমনভাবে তৈরি হয় যে এটি চালানোর সময় যখন কিছু থাকে না তখন এটি একটি নতুন সেশন তৈরি করে tmux attach

এটি tmuxএকটি উপনাম তৈরি করাও সহজ হতে পারে tmux attach


প্রথম প্রস্তাবটি বর্তমানে সংযুক্ত tmux সেশনের সাথে যুক্ত হবে (স্ক্রিন-x এর সমান), যা আমি এড়াতে চাই। দ্বিতীয় প্রস্তাবটি একই সমস্যাটি প্রদর্শন করে এবং যখন কনফিগারটি পুনরায় লোড করার জন্য tmux উত্স-ফাইল কমান্ডটি ব্যবহার করি তখন "অতিরিক্ত" tmux সেশন তৈরির অনাকাঙ্ক্ষিত পরিণতি ঘটে।
ড্রয় ফ্র্যাঙ্ক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.