سؤال استعادة جلسة tmux بعد إعادة التشغيل


هل هناك طريقة لحفظ جلسة tmux؟ بمعنى آخر ، إذا أعدت تشغيل الكمبيوتر ، هل سأفقد الجلسات دائمًا؟


224
2018-06-21 04:17


الأصل


يمكنك السبات إلى القرص كبديل - Mâtt Frëëman
السبات هو بديل لترك الكمبيوتر يعمل باستمرار ، وليس إعادة التشغيل. - chepner
chepner: هناك تلك الأيام *** System restart required *** - karatedog
karatedog نعم ، لذلك نحن متفقان على أن السبات ليس حلاً لفقد جلسة tmux الخاصة بك عند إعادة التشغيل. - chepner


الأجوبة:


نعم ، إذا قمت بإعادة تشغيل الكمبيوتر ، فسوف تفقد الجلسات. لا يمكن حفظ الجلسات. ولكن ، يمكن كتابتها. أكثر ما يفعله في الواقع هو النصي بعض الجلسات حتى يمكنك إعادة إنشائها. على سبيل المثال ، إليك نص برمجي من نوع shell بسيط لإنشاء جلسة:

#!/bin/zsh                                                                                                   

SESSIONNAME="script"
tmux has-session -t $SESSIONNAME &> /dev/null

if [ $? != 0 ] 
 then
    tmux new-session -s $SESSIONNAME -n script -d
    tmux send-keys -t $SESSIONNAME "~/bin/script" C-m 
fi

tmux attach -t $SESSIONNAME

إليكم ما تفعله. أولاً ، يتحقق من وجود جلسة بالفعل بهذا الاسم (في هذه الحالة ، الاسم الأصلي هو "script") مع tmux ديه الجلسة. يتحقق من رمز الإرجاع. إذا كانت هناك جلسة مستمرة بهذا الاسم بالفعل ، فإنها تتخطى دورة "if" وتذهب مباشرة إلى السطر الأخير ، حيث يتم إرفاقها بالجلسة. خلاف ذلك ، فإنه ينشئ جلسة وإرسال بعض المفاتيح إليها (فقط تشغيل برنامج نصي عشوائي الآن). ثم يخرج من كتلة "إذا" ويعلق.

هذا ال للغاية عينة تافهة. يمكنك إنشاء عدة نوافذ ، وأجزاء ، وما شابه ذلك قبل إرفاقها.

هذا سوف ليس يكون نفس الشيء الذي طلبته ، على الرغم من. إذا قمت بإجراء أي تغييرات في الجلسة ، على سبيل المثال ، فأنت تقوم بإعادة تسمية نافذة وإنشاء جزء جديد فيها ، إذا لم يتم حفظ هذه التغييرات بالطبع.

هناك بعض الأدوات التي تسهل عملية جلسات البرمجة النصية ، على الرغم من أنني أفضل القيام بالأشياء يدويا (أعتقد أنها أكثر تنوعا). تلك الأدوات Tmuxinator و Teamocil.

كان مصدري الرئيسي للمعلومات "كتاب Bookmelf Bookmelf" Tmux.


146
2018-06-22 08:58



لا يبدو أن هذا سوف يفعل أي شيء إذا كنت ترغب في استعادة جلسة عمل مع فتح ملفات 5. لا طريقة للقيام بذلك؟ - chovy
لا يعرف Tmux أي شيء عن حالة العمليات التي قد تكون قيد التشغيل. هل يمكن أن يكون السيناريو النصي نفسه الملفات مفتوحة عن طريق وجود الأمر 'إرسال مفاتيح' أو 'تقسيم النافذة' يكون 'vim file1 file2 file3' أو إلقاء نظرة على إدارة جلسة المحرر الخاص بك (vim -S وما شابه) - bloy
ما هو الغرض من tmux send-keys ... خط؟ - Dominykas Mostauskis
DominykasMostauskis هذا الأمر يرسل يضغط المفتاح على الجلسة المحددة. يشبه الدخول إلى الجلسة وإدخال هذه المفاتيح من لوحة المفاتيح. في هذه الحالة ، يمكنك إرسال "~ / bin / script" متبوعًا بـ Enter. - Dakatine
يمكنني الحصول على البرنامج النصي لا الدخول ssh مع اسم المستخدم وتمرير؟ (أنا أعرف أنه ليس مضمون فقط أريد أن أعرف ما إذا كان من الممكن لأنظمة حيث لا يهمني في مجال الأمن ولكن لا يزال يتعين أن يكون المستخدم وتمرير). - Jas


كتبت نصيبا باش بسيط التي لا تزال مفتوحة tmux الجلسات والنوافذ والدلائل العاملة الحالية في كل منها.

يطلق عليه مثل ذلك يدويا أو بشكل دوري من cron (لأنك قد تنسى):

tmux-session save

سوف يكتب إلى ~/.tmux-session. استعدهم بعد إعادة التشغيل مثل ذلك:

tmux-session restore

أجد هذا أفضل بكثير من خط بيرل عدة مئات خط طويل.


106
2017-07-04 22:37





لقد قمت بكتابة ملحق tmux يمكنك من حفظ بيئة tmux كاملة واستعادتها لاحقًا. انها تسعى لتكون مفصلا حقا بحيث يكون لديك شعور أنك أبدا تركت tmux.

https://github.com/tmux-plugins/tmux-resurrect

تحديث: الآن هناك tmux-متصلة البرنامج المساعد الذي يقوم بحفظ الخلفية التلقائية لبيئة tmux. اختياريا أيضا * تلقائيا * يستعيد tmux env بعد إعادة تشغيل الكمبيوتر.


71
2017-08-30 09:16



مثلما نشرت "إجابتي" بنفس الرابط ، نظرت إلى الأعلى - "do'h!" العثور على هذا أثناء محاولة تذكر ما تم استدعاء البرنامج المساعد الخاص بك. - phatskat
هذا البرنامج المساعد ليس سيئًا ، ولكنه لم يسترد جميع برامجي. سوف تقرأ المزيد من مستنداتك وربما إرسال قضية على جيثب. - Arne
Arne اعتمادًا على البرنامج ، قد يتطلب ذلك فحص البرنامج. بدلا من ذلك ، أود أن أوصي تكوين البرامج الخاصة بك لاستعادة - الملفات الثابتة .vimrc والمواقف المؤشر ل vim ، وما إلى ذلك - وتخزين tmux pane_current_command لبرامج مثل الرجل التي يمكن إعادة فتحها. نقطة تفتيش معقدة للغاية في رأيي ، ولكن يستحق النظر في أي حال. - John P
@ bruno-sutic ما هو الفرق بين البرنامج المساعد الخاص بك (tmux-resurrect) و tmux-coninuum؟ - lony


tmuxinator هي أداة مكتوبة في Ruby ، ​​والتي يمكن استخدامها لإنشاء وإدارة جلسات tmux بكل سهولة. يمكن استخدامه لإنشاء مشروع ، والذي يمكن لاحقاً أن يتم إنشاء مثيل له كجلسة tmux.


10
2018-06-26 17:40





النظر في هذا الحل الجزئي وجدت هنا

ينشئ المؤلف وظيفة تقوم بحفظ محفوظات جلسة tmux لكي تستمر حالة جلسة tmux بعد إعادة تشغيل الخادم.


5
2018-02-02 21:54



هل يمكنك نشر ما يقولونه؟ الروابط يمكن أن تتعفن. - cpast
@ cpast: هذا صحيح ، ولكن يمكن أن تتعفن التعليقات أيضًا. أفضل لاعطاء :) - danielpops