मैंने वर्तमान में अपने सिस्टम (लिनक्स) पर चल रही प्रक्रियाओं की पिड्स की एक सूची बनाए रखी है, अब यह बहुत अच्छा होगा अगर मैं इस पिड से प्रक्रिया विवरण प्राप्त कर सकूं तो मैं syscall पर आया हूं गोलांग में .Getrusage() लेकिन मुझे वांछित परिणाम नहीं मिल रहे हैं। क्या किसी के पास इसका विचार हैअपने पिड से प्रक्रिया विवरण कैसे प्राप्त करें
उत्तर
आप /proc/[pid]/stat
देख सकते हैं। उदाहरण के लिए, जाओ 1,
package main
import (
"fmt"
"io/ioutil"
"os"
"strconv"
)
func Pids() ([]int, error) {
f, err := os.Open(`/proc`)
if err != nil {
return nil, err
}
defer f.Close()
names, err := f.Readdirnames(-1)
if err != nil {
return nil, err
}
pids := make([]int, 0, len(names))
for _, name := range names {
if pid, err := strconv.ParseInt(name, 10, 0); err == nil {
pids = append(pids, int(pid))
}
}
return pids, nil
}
func ProcPidStat(pid int) ([]byte, error) {
// /proc/[pid]/stat
// https://www.kernel.org/doc/man-pages/online/pages/man5/proc.5.html
filename := `/proc/` + strconv.FormatInt(int64(pid), 10) + `/stat`
return ioutil.ReadFile(filename)
}
func main() {
pids, err := Pids()
if err != nil {
fmt.Println("pids:", err)
return
}
if len(pids) > 0 {
pid := pids[0]
stat, err := ProcPidStat(pid)
if err != nil {
fmt.Println("pid:", pid, err)
return
}
fmt.Println(`/proc/[pid]/stat:`, string(stat))
}
}
आउटपुट:
/proc/[pid]/stat: 1 (init) S 0 1 1 0 -1 4202752 11119 405425 21 57 78 92 6643 527 20 0 1 0 3 24768512 563 184467440737095
यह नहीं हो सकता है वास्तव में क्या प्रश्नकर्ता चाहता था (वहाँ विवरण के लिए किस प्रकार प्रत्येक प्रक्रिया आईडी के लिए आवश्यक हैं पर बहुत स्पष्ट जानकारी नहीं है) है, लेकिन आप अपने पीआईडी मार कमांड का उपयोग करके किसी कार्य के कुछ विवरण प्राप्त कर सकते हैं ps -p $PID
(psप्रक्रिया की स्थिति के लिए कम किया जा रहा)
के रूप में डिफ़ॉल्ट विकल्प के साथ ps -p $PID
इस रिटर्न:
- पीआईडी: नियंत्रित टर्मिनल के नाम (यदि हो तो)
- समय: प्रक्रिया आईडी
- TTY इको कितना CPU समय निष्पादन के बाद से इस्तेमाल प्रक्रिया है (उदाहरण के लिए 00:00:02)
- अध्यक्ष एवं प्रबंध निदेशक: आदेश है कि इस प्रक्रिया कहा जाता है (उदाहरण के लिए
java
)
अधिक इस प्रक्रिया आईडी के बारे में जानकारी -ओ विकल्पों ध्वज का उपयोग कर दिखाया जा सकता है। एक सूची के लिए, this documentation page देखें।
यहां एक उदाहरण है जो आपको एक विशेष प्रक्रिया पीआईडी के तर्क, उपयोगकर्ता, समूह और मेमोरी उपयोग के साथ पूर्ण आदेश बताता है (ध्यान दें कि कितने झंडे प्रत्येक जोड़ी लेते हैं, और कमांड व्हाट्स स्पेस पैडिंग के साथ कैसे आउटपुट करता है):
ps -p $PID -o pid,vsz=MEMORY -o user,group=GROUP -o comm,args=ARGS
युक्ति: कंसोल में मानव-पढ़ने के लिए उत्पादन के लिए, आर्ग अंतिम विकल्प बनाने - यह आम तौर पर सबसे लंबे समय तक हो जाएगा और कम अन्यथा कटौती हो सकता है।
ps -p PID -o comm=
ऊपर कोड दर्ज करें जहां पीआईडी प्रक्रिया का पीआईडी है।
- 1. पिड से प्रक्रिया का नाम प्राप्त करें या
- 2. शीर्षतम विंडो के लिए पिड और विवरण प्राप्त करना
- 3. पिड का उपयोग कर प्रक्रिया की स्थिति कैसे प्राप्त करें?
- 4. समाप्त प्रक्रिया की पिड निर्धारित करें
- 5. पुन: प्राप्त प्रक्रिया का विवरण सूचना
- 6. मेकफ़ाइल में मेरे मेक कमांड का पिड कैसे प्राप्त करें?
- 7. प्रक्रिया आईडी से प्रक्रिया आईडी कैसे प्राप्त करें?
- 8. जावा: एक पिड
- 9. मेरे राउटर से जुड़े डिवाइस विवरण कैसे प्राप्त करें?
- 10. प्रक्रिया आईडी से प्रक्रिया संभाल कैसे प्राप्त करें?
- 11. LINQ: तालिका विवरण प्राप्त करें
- 12. अपवाद का नाम/विवरण कैसे प्राप्त करें?
- 13. Magento डेटाबेस विवरण कैसे प्राप्त करें
- 14. जेएक्सबी वैलिडेटर से त्रुटि विवरण कैसे प्राप्त करें?
- 15. ओपनप्रोसेस() ACCESS_DENIED के साथ विफल होने पर, प्रक्रिया से फ़ाइल फ़ाइल नाम कैसे प्राप्त करें?
- 16. प्रक्रिया की पिड जानी जाने पर एक निर्दिष्ट प्रक्रिया संदेश कतार कैसे देखें?
- 17. वर्तमान प्रक्रिया आईडी कैसे प्राप्त करें?
- 18. संग्रहित प्रक्रिया से वापसी मूल्य प्राप्त करें
- 19. एक प्रक्रिया से जुड़े जीडीआई वस्तुओं को कैसे प्राप्त करें
- 20. रिमोट मशीन पर चल रही प्रक्रिया का विवरण कैसे प्राप्त करें?
- 21. ऑरैकल संग्रहीत प्रक्रिया से परिणाम प्राप्त करें
- 22. अटक पाइथन प्रक्रिया से स्टैकट्रैक प्राप्त करें
- 23. जावा में शुरू की गई प्रक्रिया की प्रक्रिया आईडी (पिड) मैं कैसे पा सकता हूं?
- 24. Outlook 2010 नियम विवरण प्राप्त करें
- 25. Azure वेबसाइट पर त्रुटि विवरण कैसे प्राप्त करें
- 26. पृष्ठभूमि प्रक्रिया के पीआईडी कैसे प्राप्त करें?
- 27. उप-प्रक्रिया कैसे प्राप्त करें 'वापसी कोड
- 28. प्रक्रिया की दादाजी आईडी कैसे प्राप्त करें
- 29. प्रक्रिया की सूची कैसे प्राप्त करें
- 30. संग्रहीत प्रक्रिया (ADO.NET) से स्केलर मान कैसे प्राप्त करें
'syscall.Getrusage' से आप क्या परिणाम प्राप्त कर रहे हैं? –
@ एटम: 'गेट्रेजेज - संसाधन उपयोग प्राप्त करने' के लिए लिनक्स मैन पेज देखें। – peterSO
इनपुट 0x0 और 0x1 के लिए यह मुझे कुछ संरचना दे रहा है और मुझे लगता है कि इस फ़ंक्शन का उपयोग प्रक्रिया विवरण प्राप्त करने के लिए नहीं किया जा सकता है और जिसने प्रक्रिया शुरू की है, उस प्रक्रिया के तहत है जो नीचे कोड के साथ समस्या को हल करता है पीटर पीटर द्वारा जब मैं हूं कुछ प्रक्रियाओं के लिए मुझे प्राप्त होने वाली प्रत्येक बोलियों के पढ़ने की प्रक्रिया का विवरण कोई ऐसा डीआईआर मौजूद नहीं है क्योंकि यह उपस्थित नहीं हो सकता है क्योंकि प्रक्रिया को मार दिया गया हो सकता है। – geek