টিএমউক্সটি এসএসএইচ না হওয়া পর্যন্ত অপেক্ষা করুন, বাকি টিমাক্সিনেটর স্ক্রিপ্টটি সম্পূর্ণ করতে


13

Tmux এবং Tmuxinator সম্প্রতি আবিষ্কার করার পরে, আমি ব্যবহারের জন্য একটি বিকাশ পরিবেশ স্থাপনের চেষ্টা করছি।

প্রতি প্রোটোকল অনুসারে, আমাদের স্ক্রিপ্টগুলিতে পাসওয়ার্ড / পাসফ্রেজ সংরক্ষণ করার অনুমতি নেই। তাই আমি যা খুঁজছি তা হল টিএমউক্সের জন্য এসএসএইচ টানেলটি স্থাপনের জন্য অপেক্ষা করা (পাসওয়ার্ড সরবরাহ করা, চাপ দেওয়া এবং লগ ইন করা)।

আমি জানি যে tmux 1.8+ এ "অপেক্ষার জন্য" কমান্ড রয়েছে। আমি সাইগউইনের মাধ্যমে 1.9a চালাচ্ছি। যদিও আমি ডকুমেন্টেশনটি পড়েছি, এটি বুঝতে খুব অসুবিধা হচ্ছে।

tmux new-session -s development -n editor -d
tmux split-window -v
tmux split-window -v

"Need to send to all panes.
tmux send-keys -t development 'ssh user@example.com' C-m

সুতরাং, আমার কাছে যা আছে তার একটি খুব সাধারণ সংস্করণ এখানে।

থটস? আমি জানি যে আমি সেশনগুলি সিঙ্ক্রোনাইজ করতে পারি, আমি এখনও এইগুলিতে কিঙ্কস আউট করছি।

সম্পাদনা করুন : কমান্ডগুলিতে সন্ধান করা, এবং ফলকটি সিঙ্ক্রোনাইজড-পেনগুলি থেকে কমান্ডটিতে ভেরিয়েবলগুলি টানছে। এটি ব্যবহারের জন্য একটি "আরও ভাল" উপায় হতে পারে, যতক্ষণ না আমি কীভাবে টিএমইউএক্স আমাকে ব্যবহারকারী-ইনপুটটির জন্য প্রম্প্ট করতে পারি তা নির্ধারণ করতে পারি।

একটি বৈশিষ্ট্য অনুরোধ ইস্যু হতে পারে।


2
আপনি কেন পাসওয়ার্ড ছাড়া সংযোগ এবং সরকারী / ব্যক্তিগত কী ব্যবহার করবেন না?
ইয়োমিসমো

আমাকে বলা হয়েছিল যে আমি সেভাবে সংযোগ করতে পারি না। আমি প্রযুক্তিগতভাবে করতে পারার সময়ে , এটি যে নীতিমালা করা হয়েছে তার সাথে এটি গ্রহণযোগ্য নয়। আমারও সেই পরিবর্তন (দ্রুত?) করার কোনও ভয়েস / কর্তৃত্ব নেই। সুতরাং আমার ক্ষেত্রে, সর্বনিম্ন প্রতিরোধের রাস্তাগুলি পরীক্ষা করার ক্ষেত্রে, এটি প্রতিশ্রুতি আছে বলে মনে হয়।
টাঙ্গো ব্র্যাভো

1
আমি এটি নিয়েছি যে রিমোট বাক্সে টিএমাক্স ইনস্টল নেই? অন্যথায় এটি রিমোট বাক্সে প্রবেশ করে আরও ভাল হবে তবেই tmux চালু করতে হবে। // এছাড়াও, আমি সুপারিশ করছি যে আপনি আপনার ব্যবহার করতে ~/.ssh/configকরা: ফাইল Host foo, User userএবং Hostname example.comকনফিগ ফাইলে পরপর তিন লাইন। তারপরে ssh fooসমান হয়ে যায় ssh user@example.com। // সম্ভবত এর মতো কিছু খুব সাহায্য করে:command-prompt -p 'log in as:' -I 'user@example.com' 'split-window -v -d %1; split-window -v -d %1'
ড্যামিয়েন

উত্তর:


3

কিছু নোট wait-for

সুতরাং যদি আপনি এটিকে থ্রিডিং সমঝোতা আদিমতার সমতুল্য মনে করেন তবে অপেক্ষা করার প্রাথমিক ব্যবহার খুব জটিল নয়

এটি অন্যান্য টিএমউক্স কার্যকারিতার সাথে সত্যই সংযুক্ত নয়, কেবল আইপিসির সুবিধাজনক বাস্তবায়ন।

wait-for event_nameএকটি জন্য অপেক্ষা মত হল ঘটনা wait-for -S event_name একটি সংকেত একটি উপায় হল ঘটনা

-Uএবং -Lঅপশন লম্ব ধরনের এবং মত আচরণ semaphores

আপনার প্রশ্ন সরাসরি সম্বোধন করা

আপনি এর সাথে বিভিন্ন ধরণের রেস শর্তটি সমাধান করতে পারেন wait-forতবে কেবল যদি কমান্ডগুলি সিঙ্ক্রোনাস হয়।

tmux send-keys 'sync-command ; tmux wait-for -S command-finished' C-m
tmux wait-for command-finished

আপনার এখানে সমস্যাটি হ'ল ssh কমান্ডটি সমকালীন নয়: এটি শেষ হয়ে গেলে আপনি বলতে পারবেন না।

মাধ্যমে দেখার জন্যে ম্যানুয়াল আমরা জানতে পারেন LocalCommandনির্দেশ যা আমরা কি চাই না বলে মনে হয়: একটি কমান্ড স্থানীয়ভাবে চালানোর পর সংযোগ তাই আমরা কল করতে পারেন সমাপ্ত হয়েছে

ssh root@iris.tatw.name -o 'PermitLocalCommand yes' -o 'LocalCommand  tmux wait-for -S done'

সুতরাং "অন্যান্য কার্যকারিতার সাথে সংযুক্ত নয়" এর অর্থ আপনি channelনিজের নামের সাথে কেবলমাত্র একটি নাম এবং টিএমউক্সের পূর্বনির্ধারিত "ইভেন্ট" এর সাথে সম্পর্কিত নন?
ormaaj

wait-for -Sবার্তা বিতরণ এবং এর sync-commandআগে শেষ হওয়ার গ্যারান্টি না দিলে এখনও রেসের সমস্যা থাকতে পারে wait-for
ormaaj
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.