কোনও টিএমউक्स সেশনটি সংরক্ষণ করার কোনও উপায় আছে কি? অন্য কথায়, আমি যদি কম্পিউটারটি পুনরায় চালু করি তবে আমি কি সর্বদা সেশনগুলি হারাব?
*** System restart required ***
কোনও টিএমউक्स সেশনটি সংরক্ষণ করার কোনও উপায় আছে কি? অন্য কথায়, আমি যদি কম্পিউটারটি পুনরায় চালু করি তবে আমি কি সর্বদা সেশনগুলি হারাব?
*** System restart required ***
উত্তর:
হ্যাঁ, আপনি যদি কম্পিউটারটি পুনরায় চালু করেন তবে আপনি সেশনগুলি হারাবেন। সেশনগুলি সংরক্ষণ করা যায় না। তবে এগুলি স্ক্রিপ্ট করা যায়। সর্বাধিক যা হয় তা হ'ল কিছু সেশনের স্ক্রিপ্ট করা যাতে আপনি সেগুলি পুনরায় তৈরি করতে পারেন। উদাহরণস্বরূপ, একটি অধিবেশন তৈরি করার জন্য এখানে একটি তুচ্ছ শেল স্ক্রিপ্ট রয়েছে:
#!/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
এটি কি করে তা এখানে। প্রথমে এটি পরীক্ষা করে থাকে যে সেই নামটি নিয়ে ইতিমধ্যে কোনও সেশন রয়েছে (এই ক্ষেত্রে, খুব আসল নাম "স্ক্রিপ্ট") টিএমউক্সের সেশন রয়েছে । এটি রিটার্ন কোডটি পরীক্ষা করে। যদি ইতিমধ্যে সেই নামটির সাথে একটি চলমান অধিবেশন থাকে তবে এটি "যদি" চক্র এড়িয়ে যায় এবং সরাসরি শেষ লাইনে চলে যায়, যেখানে এটি সেশনে সংযুক্ত থাকে। অন্যথায়, এটি একটি সেশন তৈরি করে এবং এটিতে কিছু কীগুলি প্রেরণ করে (কেবলমাত্র এখনই একটি এলোমেলো স্ক্রিপ্ট চালাচ্ছে)। তারপরে এটি "যদি" ব্লক থেকে বের হয় এবং সংযুক্ত থাকে।
এটি খুব তুচ্ছ নমুনা। সংযুক্তির আগে আপনি একাধিক উইন্ডো, পেন এবং এর মতো তৈরি করতে পারেন।
যদিও আপনি এটি চেয়েছিলেন একই জিনিস হবে না । আপনি যদি সেশনে কোনও পরিবর্তন করেন, উদাহরণস্বরূপ আপনি একটি উইন্ডোটির নাম পরিবর্তন করে এতে একটি নতুন ফলক তৈরি করেন, আপনি যদি সেই পরিবর্তনগুলি পুনরায় বুট করেন তবে অবশ্যই সংরক্ষণ করা হবে না।
কিছু সরঞ্জাম রয়েছে যা স্ক্রিপ্টিং সেশনগুলির প্রক্রিয়াটিকে সহজ করে দেয় যদিও আমি ম্যানুয়ালি জিনিসগুলি পছন্দ করি (আমি মনে করি এটি আরও বহুমুখী)। সেই সরঞ্জামগুলি হ'ল টিমাক্সিনেটর এবং টিমোসিল ।
আমার তথ্যের মূল উত্স ছিল "দ্য প্র্যাগমেটিক বুকশেল্ফ" টিএমাক্স বই।
tmux send-keys ...
লাইনের উদ্দেশ্য কী ?
some command; if [ $? != 0 ]; then .....
লিখতে (এবং পড়তে) আরো সহজ হয়: if ! some command; then .....
।
আমি একটি সরল বাশ স্ক্রিপ্ট লিখেছিলাম যা প্রতিটিতে টিমাক্স সেশন, উইন্ডো এবং বর্তমান কার্যক্ষম ডিরেক্টরিকে বহাল রাখে।
এটিকে ম্যানুয়ালি বা পর্যায়ক্রমে ক্রোন থেকে কল করুন (কারণ আপনি ভুলে যেতে পারেন):
tmux-session save
এটা লিখতে হবে ~/.tmux-session
। পুনরায় বুট করার পরে এগুলি পুনরুদ্ধার করুন:
tmux-session restore
আমি এটি কয়েকশ লাইনের দীর্ঘ পার্ল স্ক্রিপ্টের চেয়ে অনেক বেশি ভাল পাই।
আমি একটি tmux প্লাগইন লিখেছিলাম যা আপনাকে সম্পূর্ণ টিএমউक्स পরিবেশ সংরক্ষণ করতে সক্ষম করে এবং পরে এটি পুনরুদ্ধার করতে সক্ষম করে। এটি সত্যই বিশদ হওয়ার জন্য প্রচেষ্টা করে যাতে আপনার মনে হয় যে আপনি কখনই টেমুক্স ছাড়েন না।
https://github.com/tmux-plugins/tmux-resurrect
আপডেট: এখন একটি tmux-Continum প্লাগইন রয়েছে যা tmux পরিবেশের স্বয়ংক্রিয় পটভূমি সংরক্ষণ করে। Ptionচ্ছিকভাবে এটি কম্পিউটার পুনরায় বুটের পরেও * স্বয়ংক্রিয়ভাবে tmux env পুনরুদ্ধার করে।
tmuxinator রুবিতে লেখা একটি সরঞ্জাম যা সহজেই tmux সেশন তৈরি ও পরিচালনা করতে ব্যবহার করা যেতে পারে। এটি একটি প্রকল্প তৈরি করতে ব্যবহৃত হতে পারে, যা পরে tmux সেশন হিসাবে ইনস্ট্যান্ট করা যেতে পারে।
এখানে পাওয়া এই আংশিক সমাধান বিবেচনা করুন
Tmux সেশনের সার্ভার পুনরায় বুট করার পরে স্থিতি ধরে রাখতে লেখক একটি ফাংশন তৈরি করে যা tmux সেশনের ইতিহাস সংরক্ষণ করে।
আমি সেশন পুনরুদ্ধার করার জন্য https://github.com/jimeh/tmuxifier সফলভাবে ব্যবহার করি । এটি রুবি ছাড়া ইনস্টল করা যেতে পারে, কেবল গিট ব্যবহার করে।
নমুনাগুলি হ'ল স্ব স্ব ব্যাখ্যাযোগ্য, যেমন: https://github.com/jimeh/tmuxifier/blob/master/example/example.session.sh