यदि आप एक प्रक्रिया से ^ Z, यह "बंद" हो जाता है। आप वापस कैसे स्विच करते हैं?


81

मैंने गलती से अपनी telnetप्रक्रिया को "रोक दिया" । अब मैं न तो इसमें "वापस स्विच" कर सकता हूं, न ही मैं इसे मार सकता हूं (यह जवाब नहीं देगा kill 92929, जहां 92929 प्रक्रिया है।)

तो, मेरा प्रश्न यह है कि अगर आपके पास linux कमांड लाइन पर एक रुकी हुई प्रक्रिया है, तो आप इसका सहारा कैसे लेते हैं, या इसे मारते हैं, बिना सहारा लिए kill -9?

जवाबों:


90

सबसे आसान तरीका fgयह है कि इसे अग्रभूमि में लाने के लिए चलाया जाए:

$ help fg
fg: fg [job_spec]
    Move job to the foreground.

    Place the job identified by JOB_SPEC in the foreground, making it the
    current job.  If JOB_SPEC is not present, the shell's notion of the
    current job is used.

    Exit Status:
    Status of command placed in foreground, or failure if an error occurs.

वैकल्पिक रूप से, आप bgइसे पृष्ठभूमि में जारी रखने के लिए चला सकते हैं :

$ help bg
bg: bg [job_spec ...]
    Move jobs to the background.

    Place the jobs identified by each JOB_SPEC in the background, as if they
    had been started with `&'.  If JOB_SPEC is not present, the shell's notion
    of the current job is used.

    Exit Status:
    Returns success unless job control is not enabled or an error occurs.

यदि आपने अभी-अभी हिट किया है Ctrl Z, तो नौकरी वापस लाने के लिए बस fgबिना किसी तर्क के साथ चलें ।


धन्यवाद!! मुझे लगता है कि यह Alt + Tab का eq है। क्या आप जानते हैं कि जैसे ही मैंने किया, fg telnetवैसे ही क्या हुआ । यह कहा Terminated, संभवतः मेरे पिछले killcmd का b / c है ।
बोबोबो

@bobobobo संभवतः, हाँ। वैसे भी, fgकिसी भी तर्क की जरूरत नहीं है। यदि आपने अभी मारा है ^Z, fgतो एक ही टर्मिनल में दौड़ें और यह पहली नौकरी वापस लाएगा।
terdon

48

आप jobsनिलंबित प्रक्रिया को सूचीबद्ध करने के लिए उपयोग कर सकते हैं । उदाहरण लें। एक प्रक्रिया से शुरू करें:

$ sleep 3000  

तब आप इस प्रक्रिया को स्थगित कर देंगे:

^Z
[1]+  Stopped                 sleep 3000

आप इस प्रक्रिया को सूचीबद्ध कर सकते हैं:

$ jobs
[1]+  Stopped                 sleep 3000

और इसे अग्रभूमि में वापस लाएँ:

$ fg %1
sleep 3000

%1से मेल खाती है [1]के साथ सूचीबद्ध jobsआदेश।


18

आप killकमांड-लाइन से, कॉन्टेक्ट सिग्नल, प्रक्रिया संकेत भेजने के लिए कमांड का उपयोग करके एक निलंबित प्रक्रिया को फिर से शुरू करने में सक्षम होना चाहिए :

kill -CONT 92929

यह ऑपरेशन को फिर से शुरू करने का कारण होगा, लेकिन अग्रभूमि में नहीं लाया जाएगा।
बहमट

@ नौबत हां, बिल्कुल सच। एक को अभी भी fgमूल टर्मिनल के अंदर की आवश्यकता होगी । मुझे संसाधनों को बचाने के लिए -STOP और पहले के कार्यक्रमों को पसंद है, लेकिन वे प्रभावी रूप से वैसे भी पृष्ठभूमि में चल रहे हैं।
जीब

इसके मामले में sleepवह killप्रक्रिया होगी जो आप नहीं चाहते हैं ..;)
तिमो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.