এই প্রশ্নটির ফলো-আপ: প্রক্রিয়াগুলিকে স্থগিত ও পুনরায় কীভাবে করা যায়
আমি জিনোম-টার্মিনালে বাশ সেশন থেকে ফায়ারফক্স শুরু করেছি।
প্রক্রিয়া গাছটি দেখতে এরকম দেখাচ্ছে:
$ 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
অন্য টার্মিনালে কমান্ডটি (পিআইডি নোট করুন) প্রকাশ করব তখন এটি ফায়ারফক্সকে স্থগিত করবে। প্রথম টার্মিনাল এটি নোট করে না।
কীভাবে বাশ পুরো প্রক্রিয়া গাছ স্থগিত করে? এটি কি কেবল গাছটিকে অতিক্রম করে এবং সমস্ত বাচ্চাদের সিগস্টটিপি করে?
pgid
আপনার ps
কমান্ডটি যুক্ত করা উচিত ।