কেন SSH সব প্রবর্তিত প্রসেস প্রস্থান করার জন্য অপেক্ষা করে?


1

আমি ssh ব্যবহার করে অন্য মেশিনে এক মেশিন থেকে একটি স্ক্রিপ্ট চলমান করছি।

ssh <host> a.pl

এখন, a.pl 'system' পদ্ধতি ব্যবহার করে এবং প্রতিটি ব্যাকগ্রাউন্ডে execution করে a.pl এর অন্যান্য কয়েকটি উদাহরণ শুরু করে। আমি এটিকে এলডিএপি দিয়ে সংহত করেছি এবং যখন কোন একটি ঘটনা মরে যায়, তখন মূল a.pl স্ক্রিপ্টটি এটি সম্পর্কে জানতে পারে কারণ এটি ক্রমাগত নজরদারি চালিয়ে থাকে। ফলস্বরূপ, একটি দৃষ্টান্তের মধ্যে একটি মৃত্যু হয়েছে তা খুঁজে পাওয়া গেলে, মূল স্ক্রিপ্টটিও মরে যায় এবং অবশিষ্ট ঘটনাগুলি তখন init (1) এর মালিকানাধীন।

আমি এই প্রধান স্ক্রিপ্ট মারা যখন এস এস এস প্রস্থান আশা করবে। কিন্তু, যেভাবেই মনে হয় যে এসএসসি চালু হওয়া সমস্ত প্রসেসের জন্য অপেক্ষা করছে। আমি অবশিষ্ট ঘটনা হত্যা যখন ssh প্রস্থান।

এই প্রত্যাশিত আচরণ কি? যদি হ্যাঁ, কেন এমন হয়?

উত্তর:


1

হ্যাঁ। এই আচরণ প্রত্যাশিত হয়। আপনি আপনার সিস্টেমের চারপাশে ঝুলন্ত লগ আউট ব্যবহারকারীদের কাছ থেকে প্রসেস করতে চান না। এই ব্যবহারের ক্ষেত্রে, সেবা আছে।

অভ্যন্তরীণভাবে, এটি মূলত এই কারণে ঘটেছে, যে ssh সেই সময়টির অপেক্ষায় রয়েছে যখন মৃত্যুদন্ড কার্যকর প্রক্রিয়াটি ফাইল হ্যান্ডলগুলি (স্টেডিন, স্টডাউট, স্টেডার) বন্ধ করে দেবে, যা ক্লায়েন্টে পুনঃনির্দেশিত হয়। অন্য স্ক্রিপ্টগুলি চালানোর মাধ্যমে, তারা একই ফাইল হ্যান্ডলগুলি উত্তরাধিকারী হবে এবং তাই শিশুদের পুরোপুরি বন্ধ করার আগে তারা পুরোপুরি বন্ধ হবে না।


আমি এটি খুঁজে বের করেছি এবং এটি প্রকৃতপক্ষে খোলা ফাইল হ্যান্ডলগুলি যা sshd প্রক্রিয়ার মালিকানাধীন। ফোরকড দৃষ্টান্তগুলি এসএফডির মালিকানাধীন একটি ফিফো পাইপের স্টেডাউটটি লেখা ছিল, এবং তাই এস এস বেরিয়ে আসছে না। একটি ফাইলে স্টেডাউড পুনঃনির্দেশ করা বা / dev / null আমার জন্য সমস্যাটি সমাধান করেছে। আপনার সাহায্যের জন্য ধন্যবাদ, @ জাকুজে।
bpositive
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.