कैसे प्राप्त कर सकते हैं मैं एक ऐसे प्रोजेक्ट पर काम कर रहा हूं जहां मेरे पास कई पीआईडी हैं और मुझे यह पता लगाना है कि इनमें से कौन सा ज़ोंबी प्रक्रियाएं हैं और फिर मारने के लिए अपनी मूल प्रक्रियाओं को मार दें प्रारंभिक ज़ोंबी प्रक्रिया। मुझे यकीन नहीं है कि किसी दिए गए पीआईडी का पीपीआईडी क्या है इसका पता लगाने का कोई तरीका है। किसी भी सहायता की सराहना की जाएगी।एक बच्चे को पीआईडी दिया गया है आप माता-पिता पीआईडी
उत्तर
समारोह getppid() करता है कि:
#include <unistd.h>
int main()
{
pid_t ppid;
ppid = getppid();
return (0);
}
यह स्पष्ट रूप से केवल कॉलिंग प्रक्रिया के माता-पिता को प्राप्त करेगा। ओपी मनमाने ढंग से प्रक्रियाओं के साथ ऐसा करना चाहता है, जिनमें से कुछ ज़ोंबी हो सकते हैं, इसलिए यह सवाल को संबोधित नहीं करता है। –
ps कमांड के लिए स्रोत पर, वहाँ एक समारोह get_proc_stats
बुलाया proc/readproc.h
कि (अन्य बातों के अलावा) माता-पिता किसी दिए गए pid
की pid
रिटर्न में परिभाषित किया गया है। इस फ़ंक्शन को पाने के लिए आपको libproc-dev
इंस्टॉल करने की आवश्यकता है। आप तब कर सकते हैं:
#include <proc/readproc.h>
void printppid(pid_t pid) {
proc_t process_info;
get_proc_stats(pid, &process_info);
printf("Parent of pid=%d is pid=%d\n", pid, process_info.ppid);
}
यह here से लिया गया है। मैंने कभी इसका उपयोग नहीं किया लेकिन लेखक के अनुसार यह सहायक हो सकता है।
- 1. पीआईडी
- 2. एक पीआईडी
- 3. सी में बच्चे पीआईडी कैसे प्राप्त करें?
- 4. एक विंडोज पीआईडी
- 5. पायथन: पीआईडी फ़ाइल
- 6. विंडोज पीआईडी = 0 मान्य?
- 7. पीआईडी (प्रक्रिया आईडी)
- 8. अपने वीआईडी / पीआईडी
- 9. मुझे पीआईडी नियंत्रक
- 10. टास्किल/पीआईडी गिटबैश
- 11. आईआईएस आवेदन पूल पीआईडी
- 12. सी ++ विंडोज़ - अपने पीआईडी
- 13. Nginx अमान्य पीआईडी संख्या
- 14. प्राप्त करने पीआईडी
- 15. पीआईडी, पीपीआईडी और टीजीआईडी
- 16. मैक ओएस एक्स: अपने पीआईडी
- 17. एरलंग में पीआईडी की सूची
- 18. पीआईडी से नाम प्राप्त करें?
- 19. एक पीआईडी से पूरा पथ डेल्फी
- 20. लिनक्स अगले पीआईडी कैसे निर्धारित करता है?
- 21. क्या प्रबंधन.py अपना पीआईडी बदलता है?
- 22. एफटीडीआई डिफ़ॉल्ट रूप से पीआईडी बदलें
- 23. multiprocessing.Pool maxtasksperchild के साथ बराबर पीआईडी
- 24. कार्यसूची से पीआईडी पास करें और कार्यसूची
- 25. विंडोज बैच फ़ाइल: अंतिम प्रक्रिया का पीआईडी?
- 26. पृष्ठभूमि प्रक्रिया के पीआईडी कैसे प्राप्त करें?
- 27. माइस्क्ल मुद्दों को शुरू करें त्रुटि! सर्वर पीआईडी फ़ाइल को अपडेट किए बिना छोड़ दिया
- 28. सी # में बनाई गई एक प्रक्रिया का एक पीआईडी
- 29. Makefile में पिछले प्रक्रिया 'पीआईडी हो रही
- 30. ज्ञात पीआईडी से बंडल पहचानकर्ता कैसे ढूंढें?
संभावित लिपिक [लिनक्स: प्रोग्रामेटिक रूप से किसी अन्य प्रक्रिया के पैरेंट पिड प्राप्त करें?] (Http://stackoverflow.com/questions/1525605/linux-programmatically-get-parent-pid-of-another-process) –
' get_proc_stats' 'libproc' में जो आप चाहते थे वह किया होता। ऐसा लगता है कि इसे सार्वजनिक इंटरफेस से हटा दिया गया है। विकल्प प्राप्त करने के लिए 'ओपनप्रोक' और 'रीडप्रोक' का उपयोग करना है। मैं एक उत्तर पोस्ट करूंगा लेकिन मैं इसे स्वयं काम करने के लिए नहीं मिल सकता ('readproc' में दुर्घटना)। मुझे नहीं पता कि आप किस ओएस का उपयोग कर रहे हैं, इसलिए लागू नहीं हो सकता है। आगे पढ़ने [यहां] (http://stackoverflow.com/questions/6457682/how-to-programatically-get-uid-from-pid-in-osx-using-c), [यहां] (http: // goo .gl/W2BBRy) और [यहां] (https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=731959)। –
सबसे अच्छा जवाब संभवतः उस ओएसई पर निर्भर है जिस पर आप लक्षित कर रहे हैं। लिनक्स के लिए, '/ proc' फाइल सिस्टम है; बीएसडी पर, आपको 'sysctl()' कॉल करने की आवश्यकता होगी। मुझे अन्य प्रणालियों के बारे में पता नहीं है ... –