जैसा कि उपरोक्त उत्तरों में, किसी भी प्रक्रिया को समाप्त करने का सबसे मजबूत तरीका है SIGKILL
, जैसे kill -9 process_id
।
हालाँकि, ऐसी प्रक्रियाएँ मौजूद हैं जो Force Quit
न तो असंभव हैं kill
। उन्होंने zombie
प्रक्रियाओं के रूप में बुलाया ।
यहाँ एक छोटी स्क्रिप्ट है जो zombie
दो मिनट के लिए एक प्रक्रिया का निर्माण करेगी :
perl -e 'if($p=fork) {print "unkillable pid:$p\n" ;system("ps -l"); sleep(120)}'
टर्मिनल में उपरोक्त स्क्रिप्ट चलाएँ और आपको आउटपुट मिलेगा, जैसे कि अगला:
unkillable pid:50571
UID PID PPID F CPU PRI NI SZ RSS WCHAN S ADDR TTY TIME CMD
501 47380 47379 4006 0 31 0 2448416 2900 - S 0 ttys000 0:00.36 -bash
501 50570 47380 4006 0 31 0 2443512 1424 - S+ 0 ttys000 0:00.01 perl -e if($p=fork) {print "u
#THIS-> 501 50571 50570 2006 0 0 0 0 0 - Z+ 0 ttys000 0:00.00 (perl)
501 12795 12794 4006 0 31 0 2448296 1752 - S+ 0 ttys001 0:00.75 -bash
501 50123 50122 4006 0 31 0 2448296 2688 - S+ 0 ttys002 0:00.14 -bash
यदि आप unkillable प्रक्रिया (इस मामले में: 50571) के लिए स्थिति स्तंभ की जाँच करते हैं, तो आप Z
ध्वज, व्हाट्स का मतलब देखते हैं zombie
।
आप कोई भी kill
संकेत भेजने की कोशिश कर सकते हैं (जैसे kill -9 50571
) और प्रक्रिया अभी भी मौजूद रहेगी। वैसे भी, यह आपके सिस्टम को बहुत नुकसान नहीं पहुंचाता है, क्योंकि यह वास्तव में मौजूद नहीं है - केवल प्रक्रिया तालिका पर कब्जा कर लेता है।
उपरोक्त उदाहरण में, 120 सेकंड में यह साफ हो जाएगा।