যেমনটি বলা হয়েছে, এটি কলারের প্রক্রিয়া গ্রুপের সমস্ত সদস্যকে সংকেত প্রেরণ করে।
প্রক্রিয়া গোষ্ঠীগুলি শেলটিতে কাজের নিয়ন্ত্রণ প্রয়োগ করতে ব্যবহৃত হয় (এগুলি অন্যান্য জিনিসের জন্য ব্যবহার করা যেতে পারে, তবে ইন্টারেক্টিভ শেল জব নিয়ন্ত্রণ তাদের অস্তিত্বের মূল কারণ)।
আপনি লক্ষ্য করবেন যে আপনি টাইপ করার সময় Ctrl-C, বর্তমান কাজগুলির সমস্ত প্রক্রিয়া মারা যায়, কেবল সেগুলিই শুরু করে না। এছাড়াও, এটি পটভূমির কাজগুলিকে হত্যা করে না।
প্রক্রিয়া গ্রুপ দ্বারা এটি অর্জন করা হয়। একটি কাজ শেল দ্বারা শুরু হওয়া প্রক্রিয়াগুলির একটি গোষ্ঠী যা শেলটি পটভূমি বা সম্মুখভাগে স্থাপন করতে পারে (টার্মিনালের অগ্রভাগ প্রক্রিয়া গোষ্ঠী হিসাবে সেট করা হয়) এবং সামগ্রিকভাবে হত্যা করতে পারে।
আপনি ইচ্ছা করলে প্রক্রিয়াটি গ্রুপ আইডি এবং অধিবেশন আইডি সম্পর্কে জানতে পারেন ps -j
( j
এর জন্য Job নিয়ন্ত্রণ)।
পিজিআইডি-র প্রক্রিয়া গোষ্ঠীটি খতম করতে $x
, আপনি এটি করুন:
kill -- "-$x"
kill 0
কলারের প্রক্রিয়া গোষ্ঠীকে হত্যা করে।
মনে রাখবেন যে আপনি যদি /bin/kill 0
এটি করেন:, শেলটি সেই kill
আদেশটি কার্যকর করতে একটি নতুন কাজ শুরু করবে , সুতরাং kill
কেবলমাত্র নিজেকেই হত্যা করবে।
kill
সাধারণত শেল অন্তর্নির্মিত যদিও kill
এটি শেলের প্রক্রিয়া গোষ্ঠীকে হত্যা করে।
যাইহোক, শেলটি ইন্টারঅ্যাকটিভ হলে এটি প্রক্রিয়া পরিচালনার প্রক্রিয়া গোষ্ঠীগুলি হয়, সুতরাং শেলের প্রক্রিয়া গোষ্ঠীতে সাধারণত কোনও প্রক্রিয়া নেই। শেল দ্বারা শুরু সমস্ত প্রক্রিয়া অন্যান্য প্রক্রিয়া গোষ্ঠীতে রয়েছে:
$ sleep 1000 &
[1] 22746
$ ps -j
PID PGID SID TTY TIME CMD
22735 22735 22735 pts/23 00:00:00 zsh
22746 22746 22735 pts/23 00:00:00 sleep
22749 22749 22735 pts/23 00:00:00 ps
উপরে, sleep
এবং ps
দুটি পৃথক প্রক্রিয়া গ্রুপে রয়েছে, একটি পটভূমিতে, একটি অগ্রভাগে এবং সেগুলি শেলের প্রক্রিয়া গ্রুপ থেকে পৃথক।
আপনি যদিও এটি করতে পারেন:
(man kill & sleep 1; ps -j; kill 0)
ইন্টারেক্টিভ শেলটি এই সাবশেলের জন্য একটি নতুন প্রক্রিয়া গোষ্ঠী শুরু করবে এবং সাবশেল এবং ম্যান (এবং আপনার পেজার, গ্রাফ ... এর মতো লোক দ্বারা শুরু করা অন্যান্য কমান্ড) একই প্রক্রিয়া গ্রুপে থাকবে, সুতরাং kill 0
সেখানে কাজ করবে। ( sleep
উপরেরটি হল পেজারটি শুরু করার জন্য পর্যাপ্ত সময় দেওয়া যাতে এটি ps -j
মারার আগে আমরা এটি আউটপুটে দেখতে পারি)।
SIGTERM
প্রক্রিয়াটিতে একটি প্রেরণ করে, যা এটি করেছে।man
কমান্ড তা উপেক্ষা করতে চেয়েছেন।