जब मैं ज़ोटेरो / फ़ायरफ़ॉक्स चलाता हूं, तो वे अक्सर दुर्घटनाग्रस्त हो जाते हैं और मैं ज़ोंबी प्रक्रियाओं से बच जाता हूं; इसके बाद मैं Zotero या Firefox के नए उदाहरण नहीं खोल सकता। मैं रिबूट करने के बजाय इन ज़ोंबी प्रक्रियाओं से छुटकारा पाना चाहता हूं, इसलिए <pid>ज़ोंबी प्रक्रिया के लिए,
$ ps -p <pid> -o ppid=
मुझे देता है <parent_pid>और
ps aux | awk -v PID=<parent_pid> '$2 == PID {print $0}'
मुझे बताता है कि मूल प्रक्रिया /sbin/launchdउपयोगकर्ता के लिए है crippledlambda।
क्या मेरे सिस्टम को मारे बिना इसे पुनः आरंभ करने का कोई तरीका है?
sudo kill -1 <parent_pid>
कुछ नहीं करता। मैंने इसे एक स्क्रिप्ट में लिखने और इसके साथ चलने की कोशिश की है sudo:
for i in `launchctl list | grep launchd | awk -v PID=<parent_pid> '$1==PID { print $NF }'`; do `launchctl stop $i && launchctl start $i` ; done
और यह स्पष्ट रूप से (?) मुझे एक गैर-जिम्मेदार ग्रे स्क्रीन के साथ छोड़ देता है, इसलिए मुझे वैसे भी रिबूट करना होगा। आपके सुझाव के लिए अग्रिम धन्यवाद।
launchdहमेशा अपने बच्चों के बाहर निकलने की स्थिति को तुरंत पढ़ना चाहिए। यदि वे वास्तव में लाश नहीं हैं, तो आपको उन्हें मारना चाहिए। किसी भी मामले में, हत्या launchdसे समस्या हल होने वाली है।