কীভাবে জিএনইউ স্ক্রিনটি সমাপ্ত করে পর্দা সাফ করা থেকে রোধ করবেন?


1

আমি যখন দৌড়ান

$ screen id

আমি যা দেখতে পাচ্ছি তা হ'ল [screen is terminating]স্ক্রিনের শীর্ষে থাকা বার্তা। আমি যা দেখতে চাই তা হ'ল idকমান্ড এবং [screen is terminating]বার্তার আউটপুট । আমি তার সাথে পেতে পারি:

$ TERM=vt102 screen id

এই ক্ষেত্রে, স্ক্রীন (1) স্ক্রিনটি সাফ করে না, তবে শেষে অনেকগুলি খালি লাইন নির্গত করে, তাই আমি স্ক্রোল আপ করতে এবং এর আউটপুট দেখতে পারি id

তবে, আমি ব্যবহার করতে চাই না TERM=vt102, কারণ আমার আরও কয়েকটি উন্নত টার্মিনাল বৈশিষ্ট্য প্রয়োজন।

সমাপ্তির পরে আমি কীভাবে পর্দা (1) কে স্ক্রিন সাফ করা থেকে আটকাতে পারি?


আপনি কেন এটির জন্য পর্দা ব্যবহার করছেন? স্ক্রিনটি টার্মিনাল নয়, একটি টার্মিনাল মোড়ক।
স্পার্টিকগুলি

@ স্পার্টিকভস: আমি প্রোগ্রামটি চালু রাখতে স্ক্রিন ব্যবহার করছি এবং একটি হ্যাঙ্গআপের পরে পুনরায় যোগাযোগ করা সম্ভব করে তুলছি। হ্যাঙ্গআপগুলি 1% সময় ঘটে থাকে, প্রধান ব্যবহারের ক্ষেত্রে হ্যাংআপ ছাড়াই প্রোগ্রামটি কয়েক মিনিট চলে এবং তারপরে প্রস্থান হয় (এবং তারপরে স্ক্রিনটিও প্রস্থান হয়)।
pts

nohupপরিবর্তে ব্যবহার করুন। আপনি এটি সহজ পাবেন।
স্পার্টিকটিভিস 20'15

উত্তর:


8

নোট যে screenএকটি টার্মিনাল এমুলেটর। সুতরাং আপনার প্রশ্ন জিজ্ঞাসা আমি শুরু করতে পারেন মত একটি বিট হয় xtermথেকে gnome-terminalএবং যা শেষ পরিবর্তন হয়েছিল প্রদর্শিত আছে xtermআমার মধ্যে দৃশ্যমান gnome-terminalযখন xtermপ্রস্থান করে।

এখন এর মধ্যে পার্থক্য xtermএবং screenযে হয় xterm, তার পর্দা আঁকা এক্স প্রোটোকল ব্যবহার করে screenএকটি হোস্ট টার্মিনাল ব্যবহার করে।

ডিফল্টরূপে, screenতার নিজস্ব এমুলেটেড টার্মিনাল প্রদর্শন করতে তার হোস্ট টার্মিনালের পর্দা সাফ করবে এবং যেখানে উপলভ্য হবে সেই হোস্ট টার্মিনালের বিকল্প স্ক্রিন (সাফ করার আগে) ব্যবহার করবে , যাতে সমাপ্তির পরে, এটি হোস্ট টার্মিনাল অবস্থাটি আগের মতো পুনরুদ্ধার করতে পারে শুরু।

সুতরাং আপনি যা দেখছেন screenতা ছাড়ার পরে পর্দা সাফ করছে না , তবে হোস্ট টার্মিনালের প্রধান পর্দা পুনরুদ্ধার করছে। screenসর্বশেষ প্রদর্শিত উইন্ডোর সামগ্রীটি বিকল্প স্ক্রিনে এখনও রয়েছে। এর সাথে xterm, আপনি এটির জন্য Ctrl + মিডলক্লিক মেনুতে বিকল্প স্ক্রিনটি নির্বাচন করে দেখতে পারেন ।

হোস্ট টার্মিনাল যদি বিকল্প স্ক্রিনকে সমর্থন না করে (ভিটি 102 এর মতো) তবে এটি অবশ্যই তা করতে পারে না। পরিবর্তে, এটি কিছুই করে না, যা মূলত আপনি চান।

সুতরাং, আপনি যা করতে পারেন তা হ'ল screenহোস্ট টার্মিনাল কোনও বিকল্প স্ক্রিন সমর্থন করে না। তার জন্য, আপনি এতে যুক্ত করতে পারেন ~/.screenrc:

 termcapinfo * ti=:te=

যা বলে: সমস্ত সম্ভাব্য হোস্ট টার্মিনালের জন্য ( *, এর সাথে মিলছে $TERM) termcap/terminfoডাটাবেসটি ওভাররাইড করে যে টার্মিনালের জন্য, বিকল্প স্ক্রিনে প্রবেশ করতে বা ছেড়ে যাওয়ার জন্য এস্কেপ সিকোয়েন্সগুলি খালি স্ট্রিং।

tiএবং teএকেবারে বিকল্প স্ক্রিনটি বোঝায় না । Https://www.gnu.org/software/termutils/manual/termcap-1.3/html_node/termcap_39.html থেকে :

  • ti( smcupইন terminfo)
    স্ক্রিনের চারপাশে অবিচ্ছিন্নভাবে কার্সারটি সরিয়ে নেওয়া প্রোগ্রামগুলির জন্য বিশেষ মোডগুলির প্রয়োজনীয় বা যথাযথ যে কোনও প্রকারের মধ্যে টার্মিনাল স্থাপন করার জন্য কমান্ডের স্ট্রিং। পূর্ণ-স্ক্রিন প্রদর্শন করতে টার্মক্যাপ ব্যবহার করা প্রোগ্রামগুলি যখন শুরু হবে তখন তাদের এই স্ট্রিংটি আউটপুট করা উচিত।

  • te( rmcupইন terminfo)
    স্ট্রিং দ্বারা কী করা হয় তা পূর্বাবস্থায় ফেলার জন্য কমান্ডের tiস্ট্রিং। প্রোগ্রামগুলি যে প্রবেশের সময় 'টি' স্ট্রিংকে আউটপুট দেয় তাদের প্রস্থান করার সময় এই স্ট্রিংটি আউটপুট করা উচিত।

তবে এটি বেশিরভাগ টার্মিনাল এমুলেটরগুলির জন্য বিকল্প স্ক্রিনে অনুবাদ করে (বিশেষত xtermএটি বিকল্প স্ক্রিনে এবং কার্সারের অবস্থান সংরক্ষণ / পুনরুদ্ধার)


অন্তর্দৃষ্টি জন্য আপনাকে ধন্যবাদ। প্রকৃতপক্ষে termcapinfo * ti=:te=কৌতুক করে। যাইহোক, আমি যখন এটি নির্দিষ্ট না করে (এবং ডিফল্ট রাখি), পর্দা প্রস্থান করার পরে পর্দা সাফ করে দেয় (স্ক্রিন শুরুর আগে প্রদর্শিত যা কিছু পুনরুদ্ধার করা নয়)। আমি এই স্পষ্টত সাফ হয়ে যাওয়া থেকে বিরত রাখতে চাই।
পিটিএস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.