में पिड द्वारा प्रक्रिया की स्थिति प्राप्त करें क्या रूबी में पीआईडी के आधार पर प्रक्रिया की बाल प्रक्रिया की स्थिति प्राप्त करने का कोई तरीका है?रुबी
उदाहरण के लिए, पायथन में आप psutil.Process (पीआईडी) कर सकते हैं .status
में पिड द्वारा प्रक्रिया की स्थिति प्राप्त करें क्या रूबी में पीआईडी के आधार पर प्रक्रिया की बाल प्रक्रिया की स्थिति प्राप्त करने का कोई तरीका है?रुबी
उदाहरण के लिए, पायथन में आप psutil.Process (पीआईडी) कर सकते हैं .status
मैं एक चल रहा प्रक्रिया की प्रक्रिया राज्य पाने के लिए एक पोर्टेबल माणिक विधि का पता नहीं है। आप Process.wait
कर सकते हैं और $?.exitstatus
पर जांच सकते हैं, लेकिन ऐसा लगता है कि आप क्या चाहते हैं। एक POSIX समाधान के लिए, आप
`ps -o=state= -p #{pid}`.chomp
इस्तेमाल कर सकते हैं पत्र कोड ps प्रक्रिया राज्य के लिए पैदा करता है
PROCESS STATE CODES
Here are the different values that the s, stat and state output specifiers
(header "STAT" or "S") will display to describe the state of a process.
D Uninterruptible sleep (usually IO)
R Running or runnable (on run queue)
S Interruptible sleep (waiting for an event to complete)
T Stopped, either by a job control signal or because it is being traced.
W paging (not valid since the 2.6.xx kernel)
X dead (should never be seen)
Z Defunct ("zombie") process, terminated but not reaped by its parent.
OS X पर, मैं सेटअप एक स्ट्रिंग प्राप्त करने के लिए:
outputstring="ps -O=S -p #{mypid}"
तो निष्पादित यह% x कॉल में:
termoutput=%x[#{outputstring}]
यदि आवश्यक हो तो मैं प्रदर्शित कर सकता हूं, या सिर्फ आउटपुट को साफ रखूंगा और कॉल के साथ मिले राज्य पर कार्य कर सकता हूं।
मैं वही चीज़ ढूंढ रहा था। यह एक शर्म की बात है प्रोसेस स्टेटस एक लाइव पिड से शुरू करने में सक्षम नहीं प्रतीत होता है। यदि आप किसी बच्चे की प्रक्रिया की सुरक्षित समय की हत्या की तरह कुछ भी करना चाहते हैं तो यह महत्वपूर्ण चीजें हैं।
किसी भी मामले में, यह /proc/$pid/status
में दूसरी पंक्ति यदि आप लिनक्स पर कर रहे हैं सबसे अधिक संभावना बहुत ज्यादा एक बाहरी कार्यक्रम से जुड़े कुछ भी की तुलना में तेजी है .: status_line = File.open("/proc/#{pid}/status") {|f| f.gets; f.gets }
।
बाहरी कार्यक्रमों (और बाहर खोलने) पर भरोसा करने से बचने के लिए सरल और सुरुचिपूर्ण समाधान, धन्यवाद। – Navarro
मुझे विश्वास है कि प्रोसेस मॉड्यूल में आपको इसकी आवश्यकता है: http://www.ruby-doc.org/core-1.9.3/Process.html – vlasits
आपको किस ओएस (एसएस) को काम करने के लिए इसकी आवश्यकता है? – Phrogz
@vlasits प्रक्रिया मॉड्यूल में चलने की प्रक्रिया, केवल बाहर निकलने वाली प्रक्रियाओं की स्थिति प्राप्त करने के लिए कोई विधि नहीं है। – dbenhur