আপনি লগ আউট করার সময় কোন ক্ষেত্রে সাইনআপ কোনও কাজে প্রেরণ করা হয় না?


10

আমি এমন একজন ব্যবহারকারীর কাছ থেকে একটি উত্তর পড়েছি যিনি দাবি করেছেন যে এই দৌড়াচ্ছে

foo 2>&1 >& output.log &

স্থাপিত হবে fooযখন তারা লগ আউট এমনকি চালানোর জন্য অব্যাহত। এই ব্যবহারকারীর মতে এটি এমনকি এসএসএইচ সংযোগের উপরেও কাজ করেছে।

আমি সত্যিই বিশ্বাস করি না, যেহেতু আমি এই ছাপের মধ্যে ছিলাম যে এসএসএইচ থেকে সংযোগ বিচ্ছিন্ন হওয়ার পরে, বা টিটিওয়াইয়ের সমাপ্তির ক্ষেত্রে, শেল এবং এর প্রক্রিয়াগুলি একটি সাইনআপ গ্রহণ করবে, যার ফলে তারা সমাপ্ত হবে। এটা আমার ধৃষ্টতা অধীনে, ব্যবহার করার জন্য একমাত্র কারণ ছিল nohupএই ক্ষেত্রে, বা tmux, screenএট অল।

আমি তখন গ্লিবসি'র ম্যানুয়ালটি সন্ধান করলাম :

এই সংকেতটি টার্মিনালে নিয়ন্ত্রণের প্রক্রিয়াটি সমাপ্তির সাথে সেই অধিবেশন সম্পর্কিত কাজের প্রতিবেদন করতেও ব্যবহৃত হয়; এই সমাপ্তি নিয়ন্ত্রক টার্মিনাল থেকে সেশনে সমস্ত প্রক্রিয়া কার্যকরভাবে সংযোগ বিচ্ছিন্ন করে।

এটি আমার চিন্তাভাবনাগুলি নিশ্চিত করে বলে মনে হচ্ছে। তবে আরও তাকালে এটি বলে :

যদি প্রক্রিয়াটি একটি নিয়ন্ত্রণকারী টার্মিনাল সহ একটি সেশন লিডার হয়, তবে অগ্রভাগের কাজের প্রতিটি প্রসেসে একটি সিএইচএইচপি সিগন্যাল প্রেরণ করা হয়, এবং নিয়ন্ত্রণকারী টার্মিনালটি সেই অধিবেশন থেকে বিচ্ছিন্ন করা হয়।

সুতরাং, এর অর্থ কি পটভূমিতে রাখা কাজগুলি সাইনআপ গ্রহণ করবে না ?

আমার আরও বিভ্রান্তির জন্য, আমি একটি ইন্টারেক্টিভ জেডএস সেশন চালিয়েছিলাম, দৌড়ে এসে yes >& /dev/null &টাইপ করেছি exit, যখন জেড আমাকে সতর্ক করে দিয়েছিল যে আমি চাকরী চালাচ্ছি, এবং exitদ্বিতীয়বার টাইপ করার পরে , আমাকে বলেছিল যে এটি একটি কাজ সাইনআপ করেছে। বাশে ঠিক একই কাজটি কাজ চালিয়ে যায়…


আমার অতীতে এমন একটি সার্ভারের সাথে সমস্যা হয়েছিল যা হঠাৎ এসএসএসের সাথে সংযোগ বিচ্ছিন্ন হয়ে যায় এবং আমার প্রক্রিয়াটি কেবল চলতে থাকে তবে কোনও প্রকার জড়িত না করে, তাই আমাকে আবার লগইন করতে হয়েছিল এবং সেগুলি শেষ করতে সাইনআপ / শর্ত / কিল পাঠাতে হয়েছিল। সুতরাং, একই যুক্তি অনুসরণ করে, আমি এখনই পরীক্ষা করেছি, টাইপ করেছি logoutএবং yesএখনও চলছে।
ব্রায়াম

সিগহুপ প্রেরণ করা হবে কিনা তা ছাড়াও, কোনও প্রক্রিয়া সিগন্যাল হ্যান্ডলারের সংজ্ঞা দিয়েছে কিনা (এবং সিআইজিএইচপি ধরবে) বা সিগন্যাল মাস্ককে সেই সংকেত প্রেরণ করার সময় এটি বন্ধ করা হবে কিনা এর অতিরিক্ত কারণগুলি রয়েছে কিনা। লগআউট করার পরে এটি চলমান থাকার অর্থ এই নয় যে এটি সেই সংকেতটি প্রেরণ করা হয়নি
টিম বি

আপনি কি এই প্রশ্নটির কথা উল্লেখ করছেন: সার্ভারফল্ট / প্রশ্ন / ১১৫৯৯৯ / ?? উত্তরটি সেখানে পাওয়া যাবে বলে মনে হচ্ছে - এটি রেডহ্যাট ডিফল্টভাবে শপ্ট সেট করছে না। এটি রেডহ্যাটের নির্দিষ্ট কনফিগারেশন কোচ।
বোরিস বুর্কভোভ

@ بابি না, আমি এটি আগে দেখিনি, তবে এটি একটি ভাল উত্স। ধন্যবাদ!
15

এটা খুশী হয়েছে। আসলে রাফেলও সেই বিষয়টি উল্লেখ করছে।
বরিস বুর্কভোভ

উত্তর:


18

বাশ SIGHUPকেবল এটিই প্রেরণ করবে বলে মনে হয় SIGHUP, যা ভার্চুয়াল টার্মিনাল বন্ধ হয়ে গেলে বা এসএসএইচ সংযোগ বিঘ্নিত হওয়ার পরে ঘটে। ডকুমেন্টেশন থেকে :

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

সুতরাং আপনি টাইপ exitবা চাপলে Ctrl+ Dসমস্ত পটভূমি প্রক্রিয়া থেকে যায়, যেহেতু এটি বাশকে একটি হ্যাঙ্গ আপ সংকেত প্রেরণ করে না।

আপনি বাশকে আপনাকে এই বিষয়ে সতর্ক করতে বাধ্য করতে পারেন যে এখনও ব্যাকগ্রাউন্ড প্রক্রিয়া চলছে

shopt -s checkjobs

SIGHUPআপনি যদি ইন্টারেক্টিভ শেলটিতে থাকেন তবে প্রস্থানটি প্রস্থান করার জন্য একটি বিকল্প রয়েছে ( এখানে দেখুন )। তবে এটি আমার মেশিনে 4.2.25 বাশ দিয়ে কাজ করে না। হতে পারে এটি আপনার পক্ষে কাজ করে

shopt -s huponexit

সুতরাং, যখন কোনও এসএসএইচ সংযোগ বিঘ্নিত হয়, SIGHUPপ্রেরণ করা হয়, অন্যথায়, একটি পরিষ্কার প্রস্থান সহ, কাজগুলি চালিয়ে যেতে হবে? যা আমি দেখেছি তা ব্যাখ্যা করে।

হ্যাঁ. যখন ব্যবহারকারীর সাথে সংযোগ বিঘ্নিত হয় তখন হ্যাং আপ সিগন্যালটি কেবলমাত্র বিশেষ ক্ষেত্রে থাকে।
রাফেল আহরেন্স



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