অনেকগুলি ক্ষেত্রে রয়েছে যখন পরিবেশের মধ্যে ছোট পার্থক্য আপনাকে দংশিত করতে পারে। এটি একটি যেখানে আমি সম্প্রতি দৌড়েছি। এই দুটি কমান্ডের মধ্যে পার্থক্য কি?
1 ~ $ nohup myprocess.out &
2 ~ $ myprocess.out &
উত্তরটি যথারীতি একই - এটি নির্ভর করে।
অ্যাম্পারস্যান্ড না থাকায় নোহুপ হ্যাঙ্গআপ সিগন্যালটি ধরে।
হ্যাঙ্গআপ সিগন্যাল কী?
সাইনআপ - নিয়ন্ত্রণের প্রক্রিয়াটির টার্মিনাল বা মৃত্যুতে হ্যাঙ্গআপ সনাক্ত হয়েছে (মান: 1)।
সাধারণত, শেলটি ব্যবহার করে & এরপরে প্রস্থান করার সময় কোনও কমান্ড চালানোর সময়, শেলটি হ্যাঙ্গআপ সিগন্যাল (যেমন-কিল -SIGHUP $ PID) সহ সাব-কমান্ডটি সমাপ্ত করে দেয়। এটি নোহুপ ব্যবহার করা আটকাতে পারে, কারণ এটি সিগন্যালটি ধরে এবং এটিকে উপেক্ষা করে যাতে এটি কখনই আসল প্রয়োগে পৌঁছায় না।
ভাল, তবে এই ক্ষেত্রে এখানে সর্বদা 'বুট' থাকে। শেলটি এমনভাবে কনফিগার করা হয় যেখানে এটি সাইনআপ কখনই প্রেরণ করে না।
আপনি যদি ব্যাশ ব্যবহার করছেন তবে আপনার শেলটি তার শিশু প্রক্রিয়াগুলিতে SIGHUP প্রেরণ করে কিনা তা জানতে আপনি নীচের বর্ণিত আদেশটি ব্যবহার করতে পারেন:
~ $ shopt | grep hupon
এবং তদ্ব্যতীত - এমন কেস রয়েছে যেখানে নোহুপ কাজ করে না। উদাহরণস্বরূপ, আপনি যখন প্রক্রিয়া শুরু করেন তখন NOHUP সিগন্যালটিকে পুনরায় সংযুক্ত করে (এটি অভ্যন্তরীণভাবে করা হয়, অ্যাপ্লিকেশন কোডের স্তরে)।
বর্ণিত ক্ষেত্রে, পার্থক্যের অভাব যখন আমাকে কাস্টম সার্ভিস চালু করার স্ক্রিপ্টের অভ্যন্তরে দ্বিতীয় স্ক্রিপ্টে কল আসে যা কোনও নোহাপ কমান্ড ছাড়াই সঠিক অ্যাপ্লিকেশন সেট আপ করে এবং প্রবর্তন করে bit
একটি লিনাক্স পরিবেশে সবকিছু সুষ্ঠুভাবে কাজ করে, দ্বিতীয়টিতে অ্যাপ্লিকেশনটি দ্বিতীয় স্ক্রিপ্টটি বের হওয়ার সাথে সাথেই বন্ধ হয়ে যায় (সেই ক্ষেত্রে সনাক্তকরণ অবশ্যই আমাকে আরও অনেক বেশি সময় নিয়েছিল তবে আপনি ভাবতে পারেন: আটকা_ আউট_ টংগ :)।
দ্বিতীয় স্ক্রিপ্টে একটি প্রবর্তন পদ্ধতি হিসাবে নোহুপ যুক্ত করার পরে, স্ক্রিপ্টগুলি প্রস্থান করা হবে এমনকি যদি অ্যাপ্লিকেশন চলতে থাকে এবং এই আচরণটি উভয় পরিবেশের সাথে সামঞ্জস্য হয়ে যায়।