प्रक्रियाओं को कैसे निलंबित और फिर से शुरू करें


143

बैश टर्मिनल में मैं किसी भी चल रही प्रक्रिया को निलंबित करने के लिए Control+ हिट कर सकता हूं Z... फिर मैं fgप्रक्रिया को फिर से शुरू करने के लिए टाइप कर सकता हूं ।

यदि मेरे पास केवल पीआईडी ​​है, तो क्या किसी प्रक्रिया को स्थगित करना संभव है? और यदि हां, तो मुझे किस कमांड का उपयोग करना चाहिए?

मैं कुछ इस तरह की तलाश में हूँ:

suspend-process $PID_OF_PROCESS

और फिर से इसे फिर से शुरू करने के लिए

resume-process $PID_OF_PROCESS

जवाबों:


172

आप killप्रक्रिया को रोकने के लिए उपयोग कर सकते हैं ।

प्रक्रिया के लिए 'विनम्र' स्टॉप के लिए (सामान्य उपयोग के लिए इसे पसंद करें), SIGTSTP भेजें:

kill -TSTP [pid]

'हार्ड' स्टॉप के लिए, SIGSTOP भेजें:

kill -STOP [pid]

ध्यान दें कि यदि आप PID द्वारा जिस प्रक्रिया को रोकने की कोशिश कर रहे हैं, वह आपके शेल की जॉब टेबल में है, तो यह वहां दिखाई दे सकती है, लेकिन जब तक यह प्रक्रिया fgफिर से समाप्त नहीं हो जाती ।

प्रक्रिया के निष्पादन को फिर से शुरू करने के लिए, SIGCONT भेजे:

kill -CONT [pid]

25
जब तक इसके अन्य कारण नहीं हैं, मैं SIGTOP पर SIGTSTP को प्राथमिकता दूंगा, क्योंकि कुछ एप्लिकेशन SIGTSTP को विशेष रूप से संभालते हैं। उदाहरण के लिए, यदि scp एक प्रगति बार दिखा रहा है, तो SIGTSTP इसे निलंबित करने से पहले टर्मिनल मोड को साफ करने का कारण बनेगा, लेकिन यदि आप SIGSTOP भेजते हैं, तो ऐसा करने का मौका नहीं होगा।
एफ़ेमिएंट

3
@ कुशल मैंने SIGTSTP की कोशिश की, मैंने देखा कि आप इसके बारे में क्या कह रहे थे कि यह टर्मिनल की सफाई कर रहा है। SIGTSTP की व्याख्या के लिए धन्यवाद, नई चीजें सीखने के लिए अच्छा है :)
स्टीव बर्डिने

2
यह नोट करने के लिए भी उपयोगी है कि आप% प्रतीक का उपयोग करके [pid] मान को संदर्भित कर सकते हैं और फिर जॉब नंबर (जिसे आप रनिंग के बाद पा सकते हैं jobs)। तो तुम जाओगे:kill -TSTP %1
Karoh

इन्हें भी देखें: [ stackoverflow.com/questions/11886812/…
AAAfarmclub

43

आपको उसके लिए killकमांड का उपयोग करना चाहिए ।

अधिक वाचाल होने के लिए - आपको सही संकेत को निर्दिष्ट करना होगा , अर्थात

$ kill -TSTP $PID_OF_PROCESS

प्रक्रिया को निलंबित करने के लिए और

$ kill -CONT $PID_OF_PROCESS

इसे फिर से शुरू करने के लिए। यहां दस्तावेज दिया गया है


मुझे आश्चर्य है कि इतिहास के किस दुर्घटना के कारण इस उत्तर को कम वोट मिले? उत्तर लगभग समान हैं और यह पहले आया था ....
वाइल्डकार्ड

7
@Wildcard, जब मैंने उत्तर दिया कि मैं थोड़ी जल्दी में था, इस प्रकार, यह मूल रूप से सिर्फ पहला भाग था kill -TSTP(यानी कैसे निलंबित करें)। १/२ साल बाद यानी २०११ में, मैंने अपने उत्तर पर दोबारा गौर किया और इसकी अपूर्णता पर ध्यान दिया। इस प्रकार, मैंने इसे संपादित किया और kill -CONTभाग भी जोड़ा । यह स्टीव के जवाब की तुलना में वोटों के अंतर को स्पष्ट करना चाहिए।
मैक्सक्लेपज़िग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.