एक चल रही प्रक्रिया स्क्रीन


24

कभी-कभी मैं एक स्क्रीन सत्र के तहत एक कार्यक्रम चलाना भूल जाता हूं और इसे बीच में नहीं रोक सकता, और मुझे पता है कि यह लंबा समय लेने वाला है।

क्या इसे फिर से शुरू किए बिना पहले से ही चल रही प्रक्रिया को स्क्रीन करने का एक तरीका है?

जवाबों:


12

यह उत्तर कर्नल से सर्वरफ़ॉल्ट पर मिला :

हालाँकि, आपकी वास्तविक समस्या के लिए, एक और चीज़ है जिसे आप आज़मा सकते हैं: टर्मिनल से अपना काम शुरू करने के बाद, इसे टाइप करके बैकग्राउंड करें ctrl- zऔर फिर bg
उसके बाद, यह की मूल खोल से काम को अलग - में bash: disown -h %<jobid>। उसके बाद, आप सुरक्षित रूप से टर्मिनल बंद कर सकते हैं और नौकरी चलती रहेगी।

और यह रोब वेल्स से एक ही सवाल से एक :

$ screen -S my_process
$ retty $(pgrep my_process)
/redraw


क्या फिर से अग्रभूमि में नौकरी पाने का कोई तरीका है? 'स्क्रीन' तो 'एफजी 1' मेरे लिए काम नहीं करता है
पॉटनिक

@Putnik - क्या आपने अन्य चरणों का वर्णन किया है?
वॉरेन

7

सर्वरफॉल्ट में डुप्लिकेट मिला ।

उस पोस्ट में नहीं मिला एक अन्य समाधान उपयोग कर रहा है Retty एक स्क्रीन सत्र शुरू करने के बाद।


5
मैंने अपना उत्तर हटा दिया; आप (और) 2 दिनों के बाद अपना जवाब स्वीकार कर सकते हैं। यहां प्रासंगिक भागों को उद्धृत करने के लिए स्वतंत्र महसूस करें, क्योंकि क्रॉस-साइट "डुप्लिकेट" वास्तव में अलग-अलग दर्शकों के कारण धोखा नहीं देते हैं।
जेफ एटवुड

4
लेकिन आपने जेफ के सुझाव के अनुसार संबंधित भागों को उद्धृत नहीं किया। =)
डेविड कहते हैं कि

5

अच्छी तरह से देखिए रेप्टियर डालें , जो वास्तव में ऐसा ही करता है। Github पेज पर सारी जानकारी है।

रेप्टियर - "री-पाइटिंग" के लिए एक उपकरण

कार्यक्रम।

reptyr एक मौजूदा चल रहे कार्यक्रम को लेने और इसे एक नए टर्मिनल में संलग्न करने के लिए एक उपयोगिता है। Ssh पर एक लंबी चलने वाली प्रक्रिया शुरू की, लेकिन इसे छोड़ना होगा और इसे बाधित नहीं करना चाहिए? बस एक स्क्रीन शुरू करें, इसे हथियाने के लिए reptyr का उपयोग करें, और फिर ssh सत्र और घर पर सिर को मारें।

उपयोग

reptyr पीआईडी

"reptyr PID" आईडी PID के साथ प्रक्रिया को पकड़ लेगा और इसे आपके वर्तमान टर्मिनल से जोड़ देगा।

संलग्न करने के बाद, प्रक्रिया इनपुट से नए टर्मिनल में आउटपुट लिख देगी, जिसमें ^ C और ^ Z शामिल हैं। (दुर्भाग्य से, यदि आप इसे पृष्ठभूमि में रखते हैं, तो आपको अभी भी पुराने टर्मिनल में "बीजी" या "एफजी" चलाना होगा। यह आपके शेल को पैच किए बिना उचित तरीके से ठीक करने की संभावना है।)

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