উত্তর:
লিনাক্স কাজ এবং প্রক্রিয়াজাতকরণের মালিকানা কীভাবে কাজ করে তা বিবেচনা করে, আমি ভয় করি যে দত্তক গ্রহণ প্রক্রিয়াটি সহায়তা না করে কোনও প্রক্রিয়া পুনরায় মালিকানা করা সম্ভব নয়।
পিতামাতারা কোনও শিশুকে 'অস্বীকার' করতে পারেন, যা পরে 'init' নামক প্রক্রিয়াটির দ্বারা 'গৃহীত' হয়। সিস্টেম সুরক্ষা কাউকে অন্য কারও প্রক্রিয়াগুলি ধরতে বাধা দেয়। আপনি যখন এটিকে অস্বীকার করেন, তখন কোনও প্রক্রিয়া নিয়ন্ত্রণ করার জন্য অন্য কারও (init) হয়ে যায়। 'ব্যবহারকারী' হিসাবে আপনি এখনও প্রক্রিয়াটি মেরে ফেলতে পারেন, তবে আপনি এটি আর পেতে পারেন না। আপনার প্রক্রিয়াটি ফিরিয়ে আনতে বাধ্য করার চেষ্টা করা কাজ করার সম্ভাবনা কম, কারণ দীক্ষা মেলটিও পড়েন না।
এটি যেমন শোনাচ্ছে ততই বোঝা যাচ্ছে, এটি "এমন করবেন না!" এর উত্তরে সত্যিই ফুটে উঠেছে।
reptyr
(ব্যবহারের উদাহরণের জন্য আমার উত্তর দেখুন)।
যদিও আমি ধরে নিয়েছি এটি ভুল প্রক্রিয়াটি অস্বীকার করার দুর্ভাগ্যজনক পরিস্থিতিতে কাউকে সহায়তা করে না, যদি আপনি আপনার কর্মপ্রবাহ থেকে অস্বীকৃতি উপেক্ষা করে এটিকে প্রতিস্থাপন করেন:
https://github.com/nelhage/reptyr
আপনি যে কোনও প্রক্রিয়া পুনর্বার করতে সক্ষম হবেন (অর্থাত্ এটি পর্দার অভ্যন্তরে সরান)।
reptyr
সমাধানটি, তবে ব্যবহার বন্ধ করার দরকার নেই disown
। স্পষ্টতার জন্য, আমি একটি নতুন উত্তর লিখেছি।
আপনার যা দরকার তা হল reptyr
। এটি গিটহাবে থাকে এবং হুইজি থেকে ডেবিয়ান এবং সম্ভবত অন্যান্য জিএনইউ / লিনাক্স ডিস্ট্রোসের জন্যও প্যাকেজ করা হয়েছে। আপনি যদি এটির প্রসেস আইডি (পিআইডি) দিয়ে প্রার্থনা করেন তবে এটি বর্তমান টার্মিনালে আপনার অস্বীকার করা প্রক্রিয়াটিকে অগ্রভাগ করবে। উদাহরণস্বরূপ:
pgrep -f DISOWNED_PROCESS # to find out the PID of the disowned process
reptyr PID # insert this PID here
দুঃখিত, না। নীতিগতভাবে, এটি সম্ভব হবে, যেহেতু অস্বীকার করা কেবল কিছু শেল অভ্যন্তরীণ অবস্থার পরিবর্তন করে - এটি মূলত একটি তালিকা থেকে প্রক্রিয়া আইডিটি সরিয়ে দেয় এবং খুব বেশি ঝামেলা ছাড়াই এটি ফিরিয়ে দেওয়া যেতে পারে (আপনি এটি পরীক্ষা করার ক্ষেত্রে কিছুটা সতর্ক থাকতে হবে) রিট্যাচড পিডটি সঠিক অধিবেশনটিতে রয়েছে তবে তা দুর্দম নয় not তবে সাধারণ শেলগুলির (বাশ, কেএসএস, টিসিএস, জেডএস) কোনওটিই পুনরায় যুক্ত করার উপায় বলে মনে হয় না। (যদিও zsh এর সাহায্যে আপনি jobstates
, jobdirs
এবং jobtext
সহযোগী অ্যারেগুলিতে লিখতে পারেন ; আপনি জানেন না যে আপনি কতটা অর্জন করতে পারেন))
যদি আপনি শেলটি তার মালিকানাধীন উপ-প্রসেসগুলির জন্য যেমন অস্বীকার করা প্রক্রিয়ায় সংকেত প্রেরণ করতে চান তবে আপনি একটি স্টাব কাজ লিখতে পারেন যা এটি সিগন্যাল না পাওয়া পর্যন্ত প্রত্যাশিত এবং অস্বীকৃত প্রক্রিয়াটিতে একই সংকেত না পাঠায়। আপনি অনুলিপি করা প্রক্রিয়ায় + এবং অনুকরণ করতে পাঠাতে SIGSTOP
এবং প্রেরণ করতে পারেন । এর কোনওটিই পুনরায় মালিকানার মতো যথেষ্ট সুবিধাজনক হবে না।SIGCONT
CtrlZbg
কী অবস্থা? আপনি যদি কিছুক্ষণের জন্য নিজের টার্মিনালটি ফিরে পেতে চান তবে আপনি তার পরিবর্তে জিএনইউ স্ক্রিন ব্যবহার করতে পারেন । এটি কোনও টার্মিনাল থেকে প্রক্রিয়াটি পুরোপুরি আলাদা করে দেয় না - স্ক্রিনটি প্রক্রিয়াটির সুবিধার জন্য একটিকে অনুকরণ করে - তবে আপনি এটি ব্যবহার করতে পারবেন এমন আসল টার্মিনাল থেকে এটি সংযুক্ত করে আলাদা করতে পারেন can এমনকি আপনি কোনও স্ক্রিন বিচ্ছিন্ন করতে, লগ আউট করতে, আবার লগ ইন করতে এবং একই স্ক্রিনে পুনরায় সংযুক্ত করতে পারেন।