বাশ ডকুমেন্টেশনের উদ্ধৃতি (থেকে man bash
):
JOB CONTROL
Job control refers to the ability to selectively stop
(suspend) the execution of processes and continue (resume)
their execution at a later point. A user typically employs
this facility via an interactive interface supplied jointly
by the operating system kernel's terminal driver and bash.
সুতরাং, বেশ সহজভাবেই বলেছিলেন, set -m
(ইন্টারেক্টিভ শেলগুলির জন্য ডিফল্ট) থাকার ফলে একজন বিল্ট-ইনগুলি ব্যবহার করতে দেয় fg
এবং যেমন bg
, set +m
(অ ইন্টারেক্টিভ শেলগুলির জন্য ডিফল্ট) এর অধীনে অক্ষম করা হবে ।
চাকরি নিয়ন্ত্রণ এবং প্রস্থান করার সময় পটভূমি প্রক্রিয়াগুলির মধ্যে যে সংযোগ রয়েছে তা আমার কাছে স্পষ্ট নয় তবে তবে আমি নিশ্চিত করতে পারি যে সেখানে একটি রয়েছে: রানিং set -m; (sleep 10 ; touch control-on) &
ফাইলটি তৈরি করবে যদি সেই আদেশটি টাইপ করার পরে কেউ শেলটি ছেড়ে দেয় তবে তা set +m; (sleep 10 ; touch control-off) &
হবে না।
আমি মনে করি উত্তরটি অন্যান্য ডকুমেন্টেশনের মধ্যে রয়েছে set -m
:
-m Monitor mode. [...] Background pro‐
cesses run in a separate process group and a line con‐
taining their exit status is printed upon their comple‐
tion.
এর অর্থ ব্যাকগ্রাউন্ড জবস এর অধীনে শুরু হয়েছিল set +m
তা প্রকৃত "পটভূমি প্রক্রিয়াগুলি" নয় ("ব্যাকগ্রাউন্ড প্রক্রিয়াগুলি যাদের প্রসেস গ্রুপের আইডি টার্মিনালের থেকে পৃথক হয়"): তারা তাদের নিজস্ব হওয়ার চেয়ে শেল হিসাবে একই প্রক্রিয়া গ্রুপ আইডি ভাগ করে, যথাযথ পটভূমি প্রক্রিয়া মত প্রক্রিয়া গ্রুপ। শেলটি কিছু ব্যাকগ্রাউন্ড জবসের আগে বন্ধ হয়ে যাওয়ার পরে এটি পর্যবেক্ষণের আচরণটির ব্যাখ্যা দেয়: যদি আমি সঠিকভাবে বুঝতে পারি, প্রস্থান করার সময়, শেলের মতো একই প্রক্রিয়া গোষ্ঠীতে প্রসেসগুলিতে একটি সংকেত প্রেরণ করা হয় (এভাবে পটভূমির কাজগুলি নিচে শুরু করা হয়েছিল set +m
), তবে তা নয় অন্যান্য প্রক্রিয়া গোষ্ঠীগুলির কাছে (এইভাবে সত্যিকারের ব্যাকগ্রাউন্ড প্রক্রিয়াগুলি শুরু হয়ে যায় set -m
)।
সুতরাং, আপনার ক্ষেত্রে, startup.sh
স্ক্রিপ্টটি সম্ভবত পটভূমির কাজ শুরু করে। যখন এই লিপিটি অ-ইন্টারেক্টিভভাবে চালিত হয়, যেমন আপনার সাথে লিঙ্কিত প্রশ্নের মতো এসএসএইচের উপরে, কাজ নিয়ন্ত্রণ অক্ষম করা হয়, "ব্যাকগ্রাউন্ড" কাজটি রিমোট শেলের প্রসেস গ্রুপকে ভাগ করে দেয় এবং শেলটি বের হওয়ার সাথে সাথেই তাকে হত্যা করা হয়। বিপরীতে, সেই শেলটিতে জব নিয়ন্ত্রণ সক্ষম করে পটভূমির কাজটি তার নিজস্ব প্রক্রিয়া গোষ্ঠীটি অর্জন করে এবং যখন তার পিতামাতার শেলটি বের হয় তখন মারা যায় না।
tomcat/bin/startup.sh
সম্পর্কিতfg
/bg
?