GNU स्क्रीन को रीबूट बनाएं


18

मैं ग्नू स्क्रीन का भरपूर उपयोग कर रहा हूं। मुझे यह बहुत कष्टप्रद लगता है कि हर बार सर्वर को रिबूट करना पड़ता है मैं अपने सभी सत्र खो देता हूं (भले ही मुझे पहले से पता हो, मुझे फिर से सब कुछ सेट करने की आवश्यकता है)।

मैंने वेब के लिए संभावनाओं की खोज की है कि स्क्रीन को रीबूट कैसे बनाया जाए, लेकिन मेरे लिए कुछ भी नहीं मिला। कुछ विधियाँ मुझे मिलीं और उनमें कुछ खामियाँ थीं:

  • क्रायोपीआईडी : स्क्रीन के लिए समर्थन शामिल करने के लिए 2005 से होनहार, मृत प्रतीत हो रहा है
  • DMCTP : सेतु () के साथ समस्याएं हैं, मेरे लिए काम नहीं किया (मैं मानता हूं कि मैंने बहुत कोशिश नहीं की)
  • कुछ स्क्रिप्ट खरोंच से सत्र को फिर से बनाने की कोशिश कर रही है; आप अभी भी अपना इतिहास खोते हैं और मुझे लगता है कि वातावरण चर भी सही ढंग से सेट नहीं हैं (और जब मैंने कोशिश की तो यह सभी सत्र नहीं ला सका)

शायद किसी को कुछ बेहतर प्रक्रिया फ्रीजर पता है? यह सबसे आशाजनक तरीका लगता है।


हो सकता है कि आपको रिबूट करने के बजाय हाइबरनेट करना चाहिए :-) मुझे याद है कि DMCTP का उपयोग बहुत पहले, बहुत समय पहले किया था और यह काम किया था (IIRC, लेकिन मुझे यकीन नहीं है ...)
स्लथ

1
ठीक है, ज्यादातर मामलों में इसके कर्नेल अपडेट या हार्डवेयर प्रतिस्थापन जो एक रिबूट को मजबूर करते हैं। (जो मेरे ऊपर वैसे भी नहीं है ...) - DMCTP: स्क्रीन को फिर से चलाए बिना कैसे काम करना है, इस बारे में दिलचस्पी होगी (जैसा कि इंटरनेट पर सुझाव दिया गया है)।
फेनफंडाचटजिग सेप

1
मैं स्क्रीन के बजाय tmux का उपयोग कर रहा हूं और सत्र स्क्रिप्ट लिखना आसान है। यह आपके सत्र को "सेव" नहीं करता है, लेकिन आप अपने लेआउट को करने के लिए आसानी से कमांड भेज सकते हैं और क्लाइंट को 'कुंजी स्ट्रोक' भेज सकते हैं ताकि आप निर्देशिका बदल सकें और जरूरत पड़ने पर एप्लिकेशन लॉन्च कर सकें। मुझे यकीन है कि आप इसे स्क्रीन में भी कर सकते हैं, लेकिन यह सिर्फ tmux के साथ आसान लगता है

जवाबों:


13

फैशन में एक स्क्रीन सत्र को बचाने का कोई तरीका नहीं है जो आप चाहते हैं। मैंने जो किया वह अगली सबसे अच्छी बात थी: अपने सर्वर से कनेक्ट करने के लिए स्क्रिप्टेड ऑटॉश और मेरे रिग को उस तरह सेट करना जैसा मुझे पसंद है।

इसे प्यार करना।

स्थानीय कनेक्शन नीचे, मैं प्रतीक्षा करता हूं, यह वापस आता है और वहां मेरा काम होता है (मैं नेस्टेड स्क्रीन का उपयोग करता हूं)। सर्वर डाउन या रिबूट हो गया है, मैं प्रतीक्षा करता हूं, और मैं अपनी डिफ़ॉल्ट स्थिति में वापस आ गया हूं। इससे मुझे निरंतरता का अहसास होता है जो मैंने चाहा है।

वैसे भी, मैंने यह सटीक प्रश्न वर्षों पहले स्क्रीन सूची पर पूछा था।

सारांश: स्क्रीन के लिए शाश्वत जीवन की तलाश न करें। इसके बजाय पुनरुत्थान करना सीखो।

यह .rcrc config का मांस है:

ऑटोस्कोप पैकेज में एक उदाहरण, rscreen है, जिसे मैंने econnect प्रोग्राम में संशोधित किया है।

--Esc पैरामीटर को दूरस्थ स्क्रीन एस्केप को कुछ अलग करने के लिए सेट करना है (मेरा एस्केप है `)

#add much much more scrollback
defscrollback 10000

# make some default windows

screen -t ADMIN     1
chdir /Users/chiggsy/Sites/
screen -t SITES    2
chdir /Users/chiggsy/src/
screen -t SRC 3
chdir
screen -t FERGUS  4 /Users/chiggsy/bin/econnect --host host.example.com --port 50000 --esc g --user sol
screen -t LAEG 5  /Users/chiggsy/bin/econnect --host host.example2.com --port 505000  --esc g --user invictus

screen -t ROOT      0   sudo su -m

2

देखें: http://skoneka.github.io/screen-session/

Available screen-session modes: 

---- 
save              - save Screen ( and VIM ) session 
load              - load session 
ls                - list saved sessions 
---- 

dump              - print detailed informations about windows in the session 
group             - move windows to a group 
layoutlist        - display a list of layouts 
layout-checkpoint - record a snapshot of the current layout. 
layout-history    - display saved snapshots of the current layout 
layout-redo       - load a snapshot of the current layout, 
layout-undo       - load a snapshot of the current layout, 
layout-zoom       - zoom into and out of a region 
kill              - send SIGTERM to last the process started in a window 
kill-zombie       - kill all zombie windows in the session 
kill-group        - recursively kill all windows in a group 
manager           - sessions manager (screenie like) but featuring session 
                    preview in a split window 
nest-layout       - copy a layout to the current region 
new-window        - start a new Screen window in the same working directory 
                    on the position next to the current window 
name              - get or set the sessionname 
regions           - display a number in every region (like tmux display-panes) 
renumber          - renumber windows to fill gaps 
subwindows        - recursively print windows contained in groups 

2

सर्वर फाल्ट पर, एक ही प्रश्न को एक संकेत मिला है जो यहां गायब है: tmux-resurrect केtmux साथ उपयोग करें , जो है:

tmuxसिस्टम पुनरारंभ होने के बाद [s] पर्यावरण को पुनर्स्थापित करें ।

यह आपके लिए क्या बहाल कर सकता है:

  • सभी सत्र, खिड़कियां, पैन और उनके आदेश
  • प्रत्येक फलक के लिए वर्तमान कार्यशील निर्देशिका
  • विंडोज़ के भीतर सटीक फलक लेआउट (यहां तक ​​कि ज़ूम होने पर)
  • सक्रिय और वैकल्पिक सत्र
  • प्रत्येक सत्र के लिए सक्रिय और वैकल्पिक विंडो
  • फोकस वाली खिड़कियां
  • प्रत्येक विंडो के लिए सक्रिय फलक
  • "समूहीकृत सत्र" (कई मॉनिटरों के साथ tmux का उपयोग करते समय उपयोगी सुविधा)
  • एक फलक के भीतर चल रहे कार्यक्रम! बहाल कार्यक्रमों में अधिक जानकारी डॉक्टर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.