आपका प्रश्न स्वयं उत्तर देता है, ऐसा इसलिए होता है क्योंकि ये प्रक्रियाएं टर्मिनल एमुलेटर के तहत बच्चों के रूप में चल रही हैं। तो आप टर्मिनल एमुलेटर को मारते हैं, और ऐसा करने में, सभी बच्चों की प्रक्रियाओं को मारते हैं (क्योंकि बच्चे उसी प्रक्रिया समूह के तहत चल रहे हैं जो कि नियंत्रण टर्मिनल एमुलेटर के रूप में)।
उदाहरण के लिए, निम्न देखें:
csb@darwin[~]$ ps fauwx | grep -A6 "xfce4-terminal" | awk '{ for (i = 2; i <= 9; i++) $i="" ; print $0 }'
csb 0:32 xfce4-terminal --geometry=271x65 --display :0.0 --role=Terminal-0x1340050-2606-1351620352 --show-menubar --show-borders --hide-toolbars --working-directory /home/csb --tab --working-directory /home/csb
csb 0:00 \_ gnome-pty-helper
csb 0:00 \_ bash
csb 0:00 |
\_ ssh [redacted]
csb 0:00 \_ bash
csb 0:00 \_ ps fauwx
csb 0:00 \_ grep --color=auto -A6 xfce4-terminal
csb 0:00 \_ awk { for (i = 2; i <= 9; i++) $i="" ; print $0 }
ये सभी प्रक्रियाएं 'xfce4-terminal' प्रक्रियाओं के तहत चल रही हैं, इसलिए यदि मैं उस प्रक्रिया को मारता हूं तो यह प्रक्रिया समूह की सभी बाल प्रक्रियाओं को स्वचालित रूप से मार देगा ... उसी तरह, उदाहरण के लिए, टर्मिनल एमुलेटर विंडो से बाहर निकलना जरूरी मेरे SSH कनेक्शन को मार डालो।
गोले जैसे कार्यक्रम नई प्रक्रिया समूह बनाते हैं, आमतौर पर संबंधित बाल प्रक्रियाओं को एक समूह में रखते हैं। प्रत्येक कार्य एक प्रक्रिया समूह है। कर्नेल के बाहर, एक शेल नौकरी के प्रक्रिया समूह को किलपेस्ट सिस्टम कॉल के साथ सिग्नल भेजकर एक नौकरी में हेरफेर करता है, जो एक प्रक्रिया समूह में सभी प्रक्रियाओं के लिए एक संकेत देता है।