लिनक्स में, एक ऐसी प्रक्रिया चलाने के दौरान, जिसे चलाने के लिए लंबे समय की आवश्यकता होती है, यह आधे रास्ते को समाप्त करने का दर्द हो सकता है क्योंकि आप समय से बाहर हैं, या क्योंकि आपको घर जाना है। यदि आपको पहले कभी इस तरह की स्थिति का सामना करना पड़ा है, तो आपको वास्तव में Reptyr टूल प्राप्त करने की आवश्यकता है।

रेप्टीर क्या है?

Reptyr टूल एक कमांड लाइन उपयोगिता है जो एक टर्मिनल से चल रही प्रक्रिया लेता है और इसे दूसरे स्थान पर माइग्रेट करता है। दूसरे शब्दों में, यह एक प्रक्रिया दोहराता है। यह नाम छद्मोत्सव की याद दिलाता है - जिसे अक्सर "पीटीई" के रूप में संक्षिप्त किया जाता है। एक स्यूडोटर्मिनल, अगर आपको नहीं पता था, तो वह उपकरण है जो दो प्रक्रियाओं (एक मास्टर और गुलाम) को एक दूसरे से जोड़ा जा सकता है। आप जो लिखते हैं वह दूसरे में दिखाई देता है।

Reptyr कैसे काम करता है?

रेप्टीर के साथ, आप काम पर एक प्रक्रिया शुरू कर सकते हैं और इसे घर पर खत्म कर सकते हैं (यदि आप एसएसएच का उपयोग कर रहे हैं)। अन्य टूल्स हैं जो रीप्टीयर टूल के समान हैं, जैसे स्क्रीनिफ़ाई और रेट्टी, और आप उन्हें पहले सामना कर सकते हैं। हालांकि, इस समय रेप्टी अपने प्रतिस्पर्धियों से बेहतर साबित हुआ है। इसमें कम कीड़े हैं और यह अधिक कुशल है। इन अन्य उपकरणों के साथ समस्या यह है कि जब प्रक्रिया माइग्रेट की जाती है तब भी प्रक्रियाओं का नियंत्रण टर्मिनल बदला नहीं जाता है। यदि आप Screenify का उपयोग करते हैं, उदाहरण के लिए, और आप नए टर्मिनल पर "^ सी" या "^ z" कमांड का उपयोग करने का प्रयास करते हैं, तो वे सही तरीके से काम नहीं करते हैं। ऐसा इसलिए है क्योंकि उन्हें टर्मिनल पर निष्पादित किया जाता है जिस पर इस समय नियंत्रण होता है। यदि आप प्रोग्राम विंडो का आकार बदलते हैं या " less " कमांड को आज़माते हैं, तो यह सही तरीके से काम नहीं करता है, क्योंकि लिनक्स को यह सोचने में मूर्खता है कि आप अभी भी पुराने टर्मिनल पर काम कर रहे हैं।

तो Reptyr वास्तव में कैसे काम करता है? यह उस प्रक्रिया को लक्षित करता है जिसे हम ptrace API का उपयोग करके माइग्रेट करना चाहते हैं, एक नया टर्मिनल खोलता है और पुरानी फ़ाइल डिस्क्रिप्टर को ओवरराइट करने के लिए "dup2" का उपयोग करता है। Reptyr अन्य प्रक्रियाओं से भी अलग है जिसमें यह नियंत्रण टर्मिनल को बदलता है। आप विवरण प्राप्त करने के लिए आधिकारिक ब्लॉग देख सकते हैं लेकिन मूल रूप से नियंत्रण प्रक्रिया को बदलने के लिए लिनक्स में ioctl, TIOCSCTTY सुविधा में हेरफेर करना शामिल है।

स्थापना

उबंटू-आधारित डिस्ट्रो में, आप एप्लिकेशन इंस्टॉल करने के लिए एपीटी-गेट का उपयोग कर सकते हैं:

 sudo apt-get reptyr स्थापित करें 

Reptyr के साथ एक नई स्क्रीन पर एक प्रक्रिया को स्थानांतरित करना

आप अपनी प्रक्रिया को एक नए स्क्रीन सत्र में स्थानांतरित करने के लिए, जीएनयू स्क्रीन सॉफ्टवेयर ऐप (या एक समान टर्मिनल मल्टीप्लेक्सर एप्लिकेशन) के साथ रेप्टीर का भी उपयोग कर सकते हैं। उदाहरण के लिए, यदि आपके पास चल रही प्रक्रिया है और आपको अपने सर्वर को पुनरारंभ करने की आवश्यकता है, तो आप इसे एक नए स्क्रीन सत्र में स्थानांतरित कर सकते हैं ताकि सिस्टम पुनरारंभ करने के बाद आप इसे फिर से एक्सेस कर सकें। उपयोगी लगता है, है ना? तो आप यह कैसे करते हैं?

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

 bg 

इसके बाद, आपको मूल प्रक्रिया से बाल प्रक्रिया को अलग करने की आवश्यकता होगी। ऐसा इसलिए है क्योंकि मूल प्रक्रिया को पुनरारंभ के दौरान समाप्त कर दिया जाएगा, और आपको इसे बाल प्रक्रिया में होने से रोकने की आवश्यकता है। ऐसा करने के लिए, अस्वीकृत आदेश का उपयोग करें:

 अस्वीकार name_of_process 

फिर आपको स्क्रीन सॉफ्टवेयर एप्लिकेशन लॉन्च करना होगा। यह वास्तव में एक सुंदर आसान उपकरण है - अगर आपके पास यह डाउनलोड करना आसान है, तो आपके पास यह नहीं है। आप इसे निम्न आदेश के साथ लॉन्च करते हैं:

 स्क्रीन 

और अब आपको उस प्रक्रिया को पुनर्प्राप्त करने की आवश्यकता है जिसे आप माइग्रेट करने का प्रयास कर रहे हैं। कृपया ध्यान दें कि आपको इस कमांड के लिए चल रही प्रक्रिया के पीआईडी ​​की आवश्यकता है। वैकल्पिक रूप से, आप " pgrep " कमांड का उपयोग कर सकते हैं। यदि आप पीआईडी ​​जानते हैं, तो टाइप करें:

 पीआईडी ​​reptyr 

यदि आप पीआईडी ​​नहीं जानते हैं:

 reptyr $ (pgrep name_of_process) 

और आपने कल लिया! अब आप प्रक्रिया को मारने के बिना अपने सत्र से लॉग आउट कर सकते हैं।

संक्षिप्त

 $ ctrl + z # वर्तमान प्रक्रिया $ अस्वीकार निलंबित करें  # खोल $ स्क्रीन से प्रक्रिया अलग करें # लॉन्च स्क्रीन $ reptyr $ (pgrep irssi) # प्रक्रिया वापस प्राप्त करें 

Reptyr खुला स्रोत है और पूरी तरह से मुक्त है। सेटअप करना और उपयोग करना आसान है, इसलिए आगे बढ़ें और इसे आज़माएं। मुझे यकीन है कि आपको यह काफी आसान लगेगा।

छवि क्रेडिट: Techiezone, Mtellin @ फ़्लिकर