টার্মিনালে প্রচুর পাঠ্য আউটপুট পাওয়া গেলে কি tmux ফ্রিজিং রোধ করার কোনও উপায় আছে?


38

এক্সটারেমের অভ্যন্তরে একটি টিএমউক্স সেশনে যখন কোনও প্রোগ্রামগুলি প্রচুর আউটপুট উত্পন্ন করে ( cat very_long_fileকিছুক্ষণের জন্য হ'ল পুরো সেশনটির মতো । এমনকি আমি সিটিআরএল-সি চাপলেও কিছুই বিঘ্নিত হয় না Pres সম্ভবত সম্ভবত tmux হিমায়িত এবং এটি Ctrl-C তে ফরোয়ার্ড করে না প্রোগ্রাম আউটপুট জেনারেট করে this এটি প্রতিরোধের কোনও উপায় আছে কি?


সমস্যাটি হ'ল প্রোগ্রামটি এর আউটপুটটি আপনার টার্মিনালটি প্রদর্শিত হতে পারে তার চেয়ে বেশি দ্রুত স্ট্যান্ডার্ডে লিখেছিল। আপনি যখন Ctrl-C তে আঘাত করবেন তখন প্রক্রিয়াটি অবশ্যই মারা যায় তবে আপনার টার্মিনালটি বাফার আউটপুট মুদ্রণ অবিরত করে।
চিপনার

1
আনুভূমিকভাবে বিভাজন tmux প্যানগুলি (অর্থাত সিবি%) পুরো প্যান বা উল্লম্বভাবে বিভক্ত প্যানগুলির চেয়ে এই ইস্যুতে অনেক বেশি সংবেদনশীল। এছাড়াও, সিবি ডি চালানো এবং পুনরায় পাঠানো প্রোগ্রামটি "অদলবদল" করবে, যদিও কেবল অস্থায়ীভাবে। আপনি tmux কনফিগারেশনগুলি খনন করতে ইচ্ছুক না হলে আসলেই এর কোনও সমাধান নেই।
রাসেল স্টেওয়ার্ট

উত্তর:


15

সঠিক সমাধানটি আউটপুটটি চেষ্টা এবং রেট-সীমাবদ্ধ করার জন্য tmux- এর c0- * বিকল্পগুলি দেখুন। এই সমস্যাটি যে কারণেই রয়েছে তার কারণ হ'ল ডেটা টার্মিনালে প্রদর্শিত হওয়ার চেয়ে দ্রুত প্রেরণ করা হয়, সুতরাং রেট-সীমাবদ্ধতা একমাত্র উপায়।


সি0-পরিবর্তন-ট্রিগার এবং সি0-পরিবর্তন-বিরতি সমস্যার সমাধান বলে মনে হচ্ছে। ডিফল্ট সেটিংস আমার জন্য যথেষ্ট।
ecerulm

setw -g c0-change-interval 100এবং setw -g c0-change-trigger 250আমার জন্য কোন পার্থক্য না। আমি tmux-1.8 ব্যবহার করছি। আমি কি কিছু ভুল করবেন?
solotim

@ সলোটিম আমার tmux 1.9a এ কাজ করে, তবে আমি আমারটিতে যুক্ত set-window-option -g ...করেছি .tmux.conf
পলিম

5
স্পষ্টতই, এগুলি tmux 2.2-এ সরানো হয়েছে। :(
মার্টিন সি মার্টিন

20

আমার এখনও উবুন্টু ১২.১০-তে tmux 1.6-2 এ সমস্যা আছে। আমি যে কাজটি পেয়েছি তা হ'ল অধিবেশন (প্রিফিক্স + ডি) থেকে আলাদা করা এবং তারপরে পুনরায় সংযুক্তি ( tmux attach, দ্রুত শেল ওরফে জন্য ভাল প্রার্থী)) দেখে মনে হচ্ছে tmux হুডের নীচে আসলে প্রতিক্রিয়াশীল --- আপনি নিশ্চিত করতে পারবেন যে আপনার প্রক্রিয়াটি তাত্ক্ষণিকভাবে সিটিআরএল-সি দিয়ে হত্যা করা হয়েছে --- এটি কেবল অঙ্কন যা ব্লক করছে। ডিটেচ তত্ক্ষণাত্ কাজ করে, এবং আপনি যখন পুনরায় যোগাযোগ করবেন তখন অঙ্কনটি শেষ পর্যন্ত চলে যাবে।


ভাল কাজ। দেখে মনে হয় যে বাস্তবে সমস্ত কিছুই কাজ করে এমনকি বিভক্তদের মধ্যে স্যুইচিংও এটি আঁকেনা।
jmiserez

1
এই হওয়া উচিত tmux attach, তাই না?
পান্ডুবিয়ার

উফ, আপনি ঠিক বলেছেন। সংশোধন করা হয়েছে।
জ্যাক ও'কননর

2
এবং যদি আপনি আলাদা করতে না পারেন, যেমন ম্যাক্রো সম্পর্কে নিশ্চিত না হন তবে কেবল একটি নতুন টার্মিনাল উইন্ডো খুলুন এবং tmux attach
মাহমোফ

5

যতদূর আমি জানি বর্তমান রিলিজগুলিতে এটি প্রতিরোধের কোনও উপায় নেই তবে কিছু কাজ চলছে। আপনি tmux- র মেইলিং লিস্টে কিছু প্যাচগুলি খুঁজে পেতে পারেন http://thread.gmane.org/gmane.comp.terminal-emulators.tmux.user/2689

ওয়েবে অনুসন্ধান করার জন্য একটি ভাল কীওয়ার্ড হ'ল "ফ্লো কন্ট্রোল"।


2
প্যাচটি কেন প্রধান শাখায় বৈধ নয়? এই সমস্যাটি হ'ল আমি এখনও জিনু_স্ক্রিন ব্যবহার করা সবচেয়ে গুরুত্বপূর্ণ কারণ।
একমাত্র

5

দুর্ভাগ্যক্রমে tmux সংস্করণ 2.1 ( চেঞ্জলগ ) হিসাবে হার সীমাবদ্ধকরণের জন্য c0- * বিকল্পগুলি সরানো হয়েছে । যতদূর আমি জানি, রেট সীমাবদ্ধকরণকে কাস্টমাইজ করার একমাত্র উপায় হ'ল সোর্স কোড (tmux.h) এ এটির প্রভাব পরিবর্তনশীলগুলি আপডেট করা:

" পিএডিটি (ইভেন্টটি উচ্চ ওয়াটারমার্ক) থেকে ধারণ করার জন্য READ_SIZE ডেটা সর্বাধিক আকারের হয় reads পরবর্তী টি পড়ুন (মাইক্রোসেকেন্ডে) যদি কোনও টিটিইডি READ_BACKOFF এর উপরে থাকে। "

আপনি ডিফল্টগুলি কোথায় পাবেন: (tmux v2.2 হিসাবে):

#define READ_SIZE 1024
#define READ_BACKOFF 512
#define READ_TIME 100

1
Tmux v2.3 এ নির্দেশিত ভেরিয়েবলের অস্তিত্ব নেই।
begercookie

4

উত্তর https://superuser.com/a/589896/311481 ভাল কাজ করে। আমি নিম্নলিখিত মানগুলি ব্যবহার করি:

setw -g c0-change-trigger 10
setw -g c0-change-interval 250

অন্য টিপ: আপনি যদি টিএমউক্সের মধ্যে এসএসএস ব্যবহার করেন তবে পরিবর্তে মোশ ব্যবহার করুন: http://mosh.mit.edu/ এটি প্রোগ্রামের আউটপুট প্রদর্শনের ক্ষেত্রে স্মার্ট আচরণ করে। এটি যথাযথ হলে শেষ পর্দার স্থিতি ড্রপিং ইন্টারমিডিয়েটগুলি প্রদর্শনের চেষ্টা করে। সুতরাং মোম সেশনগুলির অভ্যন্তরে এর প্যানে প্রচুর আউটপুট উত্পন্ন হলে tmux কখনই হিমায়িত হয় না।

এসএসএইচের বিপরীতে, মোশের ইউডিপি-ভিত্তিক প্রোটোকল প্যাকেট ক্ষয়টি করুণভাবে পরিচালনা করে এবং নেটওয়ার্কের অবস্থার উপর ভিত্তি করে ফ্রেম রেট নির্ধারণ করে। মোশ নেটওয়ার্ক বাফারগুলি পূরণ করে না, তাই নিয়ন্ত্রণ-সি সর্বদা পলাতক প্রক্রিয়াটি থামানোর জন্য কাজ করে।

যেহেতু এসএসপি [স্টেট সিঙ্ক্রোনাইজেশন প্রোটোকল যা মোশ ব্যবহার করে] অবজেক্ট লেয়ারে কাজ করে এবং সিঙ্ক্রোনাইজেশনের হার নিয়ন্ত্রণ করতে পারে (অন্য কথায় ফ্রেম রেট), অ্যাপ্লিকেশন থেকে প্রাপ্ত প্রতিটি বাইট প্রেরণের দরকার নেই। এর অর্থ মোশি ফ্রেমগুলি নিয়ন্ত্রণ করতে পারে যাতে নেটওয়ার্ক বাফারগুলি পূরণ না করা যায়, সংযোগের প্রতিক্রিয়াটি ধরে রাখা এবং নিয়ন্ত্রণ-সি সর্বদা দ্রুত কাজ করে তা নিশ্চিত করে। প্রোটোকল যা অবশ্যই প্রতিটি বাইট প্রেরণ করতে পারে তা এটি করতে পারে না।


0

বিভিন্ন টার্মিনাল এমুলেটর চেষ্টা করুন। রেডহ্যাট .5.৫-তে কনসোলের (কে.ডি.) তে জমাট বাঁধা সমস্যা নেই (tmux 2.3 এবং মাস্টার); তবে, এক্সটার্ম এবং জিনোম-টার্মিনাল উভয়ই খারাপ ফ্রিজিংয়ের অভিজ্ঞতা অর্জন করে।


tmux 2.2 তবে তিনটি টার্মিনাল এমুলেটরগুলিতে ইস্যু জমা না করে সূক্ষ্মভাবে কাজ করে।
kko
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.