मैं एक चल रही प्रक्रिया की दीवार घड़ी समय कैसे प्राप्त कर सकता हूं?


14

मैंने एक बड़ी फ़ाइल का हैश चेक शुरू किया और इसका उपयोग करके पुनः आरंभ नहीं करना चाहता timedateमैं एक कमांड शुरू करने से पहले समय का उपयोग किए बिना या सही उपयोग किए बिना दीवार घड़ी का समय कैसे प्राप्त कर सकता हूं ?

जवाबों:


12

एक चल रही प्रक्रिया के लिए आप ऐसा कर सकते हैं:

PID=5462
command ps -p "$PID" -o etime
command ps -p "$PID" --no-headers -o etime

एक सामान्य सुविधा के रूप में आप अपने शेल प्रॉम्प्ट को संशोधित कर सकते हैं। यह मेरी बैश प्रॉम्प्ट परिभाषा है:

TERM_RED_START=$'\033[1m\033[31m'
TERM_RED_END=$'\033(B\033[m'
PS1='\nec:$(ec=$?; if [ 0 -eq $ec ];
then printf %-3d $ec;
else echo -n "$TERM_RED_START"; printf %-3d $ec; echo "$TERM_RED_END";
fi) \t  \u@\h:\w\nstart cmd:> '
PS2="cont. cmd:> "

आपके लिए प्रासंगिक हिस्सा \tसमय के लिए है।

हालांकि यह सभी समस्याओं का समाधान नहीं करता है। नया प्रॉम्प्ट तब दिखाई देगा जब प्रक्रिया समाप्त हो गई हो, लेकिन पूर्व प्रॉम्प्ट काफी पुराना हो सकता है जब मापी जाने वाली कमांड शुरू की गई थी। तो या तो आप लंबे समय से चल रही कमांड शुरू करने से पहले प्रॉम्प्ट को रिन्यू करना याद रखें या आपको वर्तमान समय को याद रखना होगा जब आप जानना चाहेंगे कि वर्तमान प्रक्रिया में कितना समय लगेगा।

संपूर्ण समाधान के लिए आपको एक ऑडिट सुविधा की आवश्यकता होती है (जो प्रक्रियाओं के प्रारंभ और समाप्ति समय को लॉग करती है)। लेकिन यह डेटा की एक बड़ी मात्रा का कारण हो सकता है अगर इसे शेल तक सीमित नहीं किया जा सकता है।


1

स्वीकृत उत्तर पर निर्माण, आप लगातार चल रही प्रक्रिया के बीते हुए समय की निगरानी भी कर सकते हैं watch:

PID=5462
watch command ps -p "$PID" -o etime
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.