यह प्रश्न अनुवर्ती है: प्रक्रियाओं को कैसे स्थगित करें और फिर से शुरू करें
मैंने गनोम-टर्मिनल में बैश सत्र से फ़ायरफ़ॉक्स शुरू किया है।
प्रक्रिया पेड़ इस तरह दिखता है:
$ ps -e -o pid,ppid,cmd -H
1828 1 gnome-terminal
26677 1828 bash
27980 26677 /bin/sh /usr/lib/firefox-3.6.15/firefox
27985 27980 /bin/sh /usr/lib/firefox-3.6.15/run-mozilla.sh /usr/lib/firefox-3.6.15/firefox-bin
27989 27985 /usr/lib/firefox-3.6.15/firefox-bin
28012 27989 /usr/lib/firefox-3.6.15/plugin-container /usr/lib/adobe-flashplugin/libflashplayer.so 27989 plugin true
जब मैं CTRL+Z
बैश में मारूंगा, तो यह फ़ायरफ़ॉक्स को निलंबित कर देगा। जब मैं कमांड जारी करता हूं bg
(या fg
) यह फ़ायरफ़ॉक्स फिर से शुरू करेगा। यह उम्मीद के मुताबिक है।
जब मैं kill -s SIGTSTP 27980
दूसरे टर्मिनल में कमांड जारी करता हूं , तो यह [1]+ Stopped firefox
पहले टर्मिनल में लाइन प्रिंट करेगा (जैसे कि जब मैं हिट CTRL+Z
करता हूं ), लेकिन यह फ़ायरफ़ॉक्स को निलंबित नहीं करता है। मुझे लगता है कि यह केवल शेल स्क्रिप्ट को निलंबित करता है।
जब मैं kill -s SIGTSTP 27989
दूसरे टर्मिनल में कमांड (पीआईडी पर ध्यान दें) जारी करता हूं , तो यह फ़ायरफ़ॉक्स को निलंबित कर देगा। पहला टर्मिनल इस पर ध्यान नहीं देता है।
बैश पूरी प्रक्रिया पेड़ को कैसे निलंबित करता है? क्या यह सिर्फ पेड़ और SIGTSTP के सभी बच्चों को पीछे छोड़ देता है?
pgid
लिए आपको अपने ps
कमांड में जोड़ना चाहिए ।