सवाल स्क्रीन पर पहले से चलने वाली प्रक्रिया को स्थानांतरित करना


मेरा कार्यालय नौकरी नियमित रूप से मुझे वीएनसी के माध्यम से एक लिनक्स बॉक्स से जुड़ा हुआ देखता है।

कभी-कभी मैं कंसोल पर रिमोट जॉब शुरू करता हूं, और बाद में महसूस करता हूं कि यह अपेक्षा से अधिक लंबा चलता है। (इसे स्क्रीन के तहत पहली जगह में शुरू करना चाहिए था ...)

मैं वीएनसी सत्र को खोलने के लिए रातोंरात दौड़ने के लिए अपने वर्कस्टेशन को नहीं रखना चाहता; मैं पहले से चल रहे रिमोट जॉब को स्क्रीन सत्र (रिमोट बॉक्स पर) में ले जाना चाहता हूं, इसलिए मैं वर्कस्टेशन (और अगली सुबह फिर से कनेक्ट) को पावर कर सकता हूं।

यह कैसे किया जा सकता है, अगर बिल्कुल?


205
2017-08-18 11:03


मूल


और यह एक डुप्ली है, serverfault.com/questions/49877/... - ऐसा लगता है कि यह नहीं किया जा सकता है। - Paul Dixon
superuser.com/questions/28568/screen-a-running-process - warren
और देखें मैं एक चल रही प्रक्रिया को कैसे अस्वीकार कर सकता हूं और इसे एक नए स्क्रीन खोल में जोड़ सकता हूं?। - dma_k
के संभावित डुप्लिकेट क्या मैं पहले से शुरू की गई प्रक्रिया को दोबारा / स्क्रीन कर सकता हूं? - scai
Screenify स्क्रिप्ट के लिए खोजें। - Vashu


जवाब:


अच्छी तरह से देखिए reptyr, जो वास्तव में करता है। जिथब पेज में सभी जानकारी है।

reptyr - "पुनः-पट्टी" कार्यक्रमों के लिए एक उपकरण।

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

उपयोग

पीआईडी ​​reptyr

"रीप्टर पीआईडी" प्रक्रिया को पकड़ लेगा   आईडी पीआईडी ​​के साथ और इसे अपने साथ संलग्न करें   वर्तमान टर्मिनल

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


192
2018-06-28 09:25



अगर, मेरे जैसे, आपने ऊपर दिए गए लिंक को देखा और संक्षेप में स्रोत से प्रोग्राम इंस्टॉल करने पर विचार किया, दिल लें: यह सिर्फ एक है apt-get डेबियन सिस्टम पर दूर। - mlissner
यह बहुत अच्छा काम करता है, मैंने इसे पहले कैसे नहीं देखा है? - deed02392
यह कमाल का है! अगर मैं कर सकता तो मैं इसे 10 बार ऊपर उठाऊंगा! इसके अलावा, रेडहाट रेपहाट रेपो में भी उपलब्ध है। इसे पाने के लिए बस 'यम इंस्टॉल' करें। - Mark J. Bobak
सबसे मामूली मामलों को छोड़कर काम नहीं करता है: Unable to attach. (This most commonly means that 11690 has a suprocesses) - Mehrdad
कम से कम रूट के रूप में, आप उपयोग कर सकते हैं reptyr -T PID - ChristophK


आप आसानी से ऐसा नहीं कर सकते हैं। मैं आपको कंसोल खोलने के बाद पहली चीज के रूप में स्क्रीन शुरू करने की आदत बनाने का सुझाव दूंगा।

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


42
2017-08-18 11:11



यह मेरे मामले के लिए बहुत अच्छा काम किया। reptyr और retty दोनों प्रक्रिया को पकड़ने में असफल रहे, लेकिन मुझे बस एक टर्मिनल बंद करने और प्रक्रिया को चलाने के लिए छोड़ने की जरूरत थी। - STW
एफवाईआई: बाद में अस्वीकार करनायह प्रक्रिया हो सकती है reptyrअंदर अंदर स्क्रीन। - Adam
इसने मेरे चल रहे कार्यक्रम को मार डाला :( - Mehrdad


जैसा कि आप लिनक्स का उपयोग कर रहे हैं, नई लॉन्च स्क्रीन प्रक्रिया के अंदर रेटी का उपयोग करने के बारे में क्या?

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

HTH

चियर्स,


37
2017-08-18 12:09



धन्यवाद, धन्यवाद के बारे में पता नहीं था। हालांकि, मुझे लगता है कि लंबे समय तक चलने वाली नौकरियों के लिए, मैं एक उपकरण का उपयोग करने में थोड़ा अनिच्छुक हूं जो खुद को "बहुत हल्के ढंग से परीक्षण" के रूप में संदर्भित करता है। मैं अर्ल के समाधान के साथ जाता हूं।
Gentoo में कोई retty देखें - Sergei
4858 से संलग्न नहीं हो सकता है - Arnold Roa