2010-02-21 11 views
6

मैं एर्लांग में केवल एक मॉड्यूल नाम को शुरू करने के लिए उपयोग की जाने वाली प्रक्रिया को कैसे मारूं?मैं एर्लांग में केवल एक मॉड्यूल नाम को शुरू करने के लिए उपयोग की जाने वाली प्रक्रिया को कैसे मारूं?

+0

यदि ज्ञात मॉड्यूल ने कई प्रक्रियाएं शुरू की हैं तो आप कैसे जानते हैं कि आप किसको मारना चाहते हैं? – Paralife

उत्तर

4

ऐसा करने का कोई तरीका नहीं है।

आपका सबसे अच्छा शर्त पंजीकृत नाम और/या आपकी प्रक्रियाओं की प्रारंभिक कॉल के आधार पर अनुमान लगाया जाना है।

+0

यदि कोई भी पंजीकृत नाम से पीआईडी ​​प्राप्त करने के लिए एपीआई की तलाश में है, तो 'जहां (रजिस्ट्रारनाम) ' –

9

यदि यह सरल डिबगिंग के लिए है, तो आप पमन चला सकते हैं: प्रारंभ करें(), और केवल प्रक्रिया की तलाश करें (प्रारंभिक कॉल जैसे विवरण देखने के लिए एंट्री पर डबल-क्लिक करें)। फिर आप इसे सीधे पैन से मार सकते हैं।

अन्यथा, आप सिस्टम में सभी प्रक्रियाओं को सूचीबद्ध करने के लिए erlang: प्रक्रिया() का उपयोग कर सकते हैं (भयानक, मुझे पता है), और erlang चलाएं: प्रक्रिया_इनोफ़ (पिड, प्रारंभिक_call) उनमें से प्रत्येक पर सही प्रक्रिया को खोजने के लिए। एक बार ऐसा करने के बाद, बस बाहर निकलें (पिड, मार) का उपयोग करें।

+0

का आह्वान करें, लेकिन प्रारंभिक कॉल के पास मॉड्यूल के साथ कुछ भी नहीं है जो प्रक्रिया को उत्पन्न करता है। या ...? – Zed

+0

नहीं, वह जानकारी कहीं भी सहेजी नहीं गई है। – RichardC

1

आप अभी भी अन्य माध्यमों के माध्यम से प्रक्रिया को पा सकते हैं, भले ही यह पंजीकृत न हो। उदाहरण के लिए, आप पमन (pman: start()) जैसे प्रक्रिया मॉनिटर के साथ देख सकते हैं और देख सकते हैं कि क्या आप इसे वहां पाते हैं। पमन आपको कई मानदंडों के लिए फ़िल्टर करने की अनुमति देता है, जो आपको सही प्रक्रिया में ले जा सकता है। या आप डीबगर शुरू कर सकते हैं, मॉड्यूल में ब्रेकपॉइंट स्थापित कर सकते हैं, और अगली बार जब प्रक्रिया कुछ करेगी, तो यह बाधित हो जाएगा, डीबगर एक विंडो पॉप अप करेगा, और टाइटल बार में आप प्रक्रिया के पीआईडी ​​को पढ़ सकते हैं बाधित किया गया था।

एक बार आपके पास पीआईडी ​​है, तो आप पिड (ए, बी, सी) का उपयोग कर सकते हैं। उस से खोल पर एक पीआईडी ​​वस्तु बनाने के लिए, और प्रक्रिया को मारने के लिए इसका उपयोग करें।

संबंधित मुद्दे

 संबंधित मुद्दे