"স্ক্রিন-ডি -আর" এর সমান কোনও টিএমউক্স আছে


13

আমি জানতে চাই যে এমন tmuxআচরণ করার কোনও উপায় আছে কিনা screen -D -Rযাতে আমি বলতে পারি, পুট্টিতে একটি কমান্ড ডিফল্ট হিসাবে রয়েছে have

এই screenস্যুইচগুলি আমার ব্যবহারকারীর জন্য বিদ্যমান স্ক্রিন সেশনটি বিচ্ছিন্ন করতে বাধ্য করবে (এটি এখনও সক্রিয় এবং অন্য কোথাও লগ-ইন থাকলেও) এবং এটি বর্তমান সেশনে পুনরায় সংযুক্ত করবে। এছাড়াও, কোনও স্ক্রিন সেশন অস্তিত্বের ক্ষেত্রে এটি একটি নতুন তৈরি করবে।

আমি tmux পছন্দ করি এবং স্ক্রিনের থেকে সুস্পষ্ট সুবিধাগুলি দেখতে পারি, তবে এই বৈশিষ্ট্যের অস্তিত্ব সত্যিই চুক্তিটি সিল করবে।

tmux attach যদি এটি না থাকে তবে একটি নতুন অধিবেশন তৈরি হবে বলে মনে হচ্ছে না।

Tmux এর জন্য ম্যান পেজটি বলেছেন:

যদি কোনও সার্ভার শুরু না হয় তবে সংযুক্তি-অধিবেশন (সংযুক্তি) এটি শুরু করার চেষ্টা করবে; কনফিগারেশন ফাইলে সেশন তৈরি না করা হলে এটি ব্যর্থ হবে।

সাহসী বিভাগটির অর্থ কী? (কনফিড ফাইলে একটি সেশন তৈরির উদাহরণ খুঁজে পাচ্ছি না)।


ম্যান পৃষ্ঠা থেকে: " কনফিগারেশন ফাইলটি tmuxকমান্ডগুলির একটি সেট যা সার্ভারটি প্রথম শুরু করার পরে ক্রমানুসারে কার্যকর করা হয় " "- আপনি আসলে attachবা new-sessionআপনার একটি লাইন হিসাবে থাকতে পারেন .tmux.conf
sr_

@ এসআর_ ঠিক আছে, সার্ভারটি যখন প্রথম শুরু new-sessionহবে ঠিক তখনই ঘটত ...
ক্রিস ডাউন

এইমাত্র (বন্ধ) প্রশ্নটি এসও-তে পাওয়া গেছে। অনুরূপ উত্তর সহ একই প্রশ্ন। stackoverflow.com/q/3432536/168034
phunehehe

উত্তর:


15

হ্যাঁ:

$ tmux attach -d || tmux new

-dযেমন আচরণ করা প্রয়োজন screen -D, অর্থাত্, অন্য সবাইকে বিচ্ছিন্ন করুন।

Ssh দ্বারা সংযুক্ত হন, তারপরে সংযুক্ত বা তৈরি এমন কিছু হতে পারে:

$ cat bin/stmux
#!/bin/sh
exec ssh -t $@ 'tmux attach -d || tmux new'

$ stmux my.remote.box

1
হ্যাঁ - আমার অনুরোধটি অর্জনের পক্ষে এটি সবচেয়ে কার্যকর উপায়। তেমনিভাবে, new-sessionআপনি যদি টিএমউস সেশনের সময় আপনি এটি সম্পাদনা করতে চান এবং পুনরায় লোড করতে চান তবে আমি কনফিগার ফাইলটিতে অস্বীকার করব ।
গীব

4

tmux attachএকটি না থাকলে একটি নতুন সেশন তৈরি করতে, new-sessiontmux কনফিগারেশন ফাইলে বিকল্পটি ব্যবহার করুন। ফাইলটি ~/.tmux.confউপস্থিত না থাকলে তৈরি করুন এবং যুক্ত করুন

new-session

এটা। এছাড়াও, আমি উপনাম tmuxথেকে tmux attach:)


1
আমি পছন্দ না করেন new-session~/.tmux.confকারণ যদি আমি কনফিগারেশন কমান্ড ব্যবহার করে পুনরায় লোড source-file ~/.tmux.conf(দেখুন এই ) একটি নতুন অধিবেশন চালু করা হবে না। হ্যাঁ, আমি এটি মারতে পারি এবং তারপরে আগেরটির সাথে সংযুক্ত করতে পারি তবে এটি একটু বিরক্তিকর।
mmoya

3

আপনি এটি শেল ফাংশন দিয়ে অনুকরণ করতে পারেন, এটি কোনও পসিক্স-কমপ্লায়েন্ট শেলটির জন্য কাজ করা উচিত:

tmux() {
    if [ "$#" -ge 1 ] && [ "$1" = -z ]; then
        shift
        command tmux detach 2>/dev/null
        command tmux attach "$@" || command tmux new-session "$@"
    else
        command tmux "$@"
    fi
}

এখন আপনি যদি এটি হিসাবে চালু করেন তবে এটি tmux -zআপনার সন্ধান করা ক্রিয়াগুলি সম্পাদন করবে।


2

এটি আমার জন্য কিছুটা ভাল কাজ করে:

tmux new-session -AD -s <session-name>

1

আমি .bashrc এ এটি আমার পক্ষে সবচেয়ে ভাল কাজ করে

if [[ -z $TMUX ]]; then
  tmux attach-session || tmux new-session
fi

কীভাবে এটি ওপিতে সাহসী বিভাগটি ব্যাখ্যা করে?
অ্যান্থন

0

আপনি যদি এটি একটি .shrc ফাইলের মধ্যে ব্যবহার করেন বা execআমার অনুরোধের অনুরূপ

if tmux ls
  exec tmux attach
else
  exec tmux
fi
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.