ssh- র মাধ্যমে কমান্ড চালানোর সময় ডট ফাইল সোর্স করা হয় না


11

আমি যখন আমার প্রোগ্রামটি ইন্টারেক্টিভভাবে চালিত করি, এটি কার্যকর হয়:

ssh somehost
$ ~/some/path/somescript.py

আমি যখন সরাসরি আমার প্রোগ্রামটি ssh এর মাধ্যমে চালাই, তখন এটি কার্যকর হয় না। ভেরিয়েবল PYTHONPATHসেট করা হয়নি, কারণ .bashrcটকযুক্ত নয়।

ssh somehost ~/some/path/somescript.py

আমি যদি দৌড়ে যাই তবে ssh somehost 'source ~/.bashrc; ~/some/path/somescript.py'এটি ঠিক আছে works

তবে দ্বিতীয়টি কিছু লোকের জন্য কাজ করবে না, যেমন, টিসিএস ব্যবহার করে এবং মোটেও না করে ~/.bashrc)।

কি SSH এর মাধ্যমে একটি জিনিস চালানোর জন্য অন্য হোস্ট যে সব শাঁস জন্য কাজ করে কমান্ড?


1
এখানে উত্তর দেওয়া হয়েছে, stackoverflow.com/questions/820517/bashrc-at-ssh-login , মূলত, ssh .bashrc উত্স করে না, আপনাকে .bash_profile বা অন্যান্য বিকল্পের মাধ্যমে আপনার .brcrc উত্স করতে হবে।
এইটবিটটনি

1
@ আইটবিটটনি: না, এটি একটি ভিন্ন বিষয়। bzdjamboo এর প্রশ্নটি একটি অ-ইন্টারেক্টিভ অধিবেশন সম্পর্কে।
গিলস 'অশুভ হওয়া বন্ধ করুন'

আসলে আমি পোস্ট করা লিঙ্কের শেষ উত্তরটি মূল্যবান বলে মনে হচ্ছে, ssh উত্সটি .bashrc করে, তবে এটি ইন্টারেক্টিভ হওয়ার জন্য চেকের কারণে কার্যকর হয় না। তবে আমি প্রশংসা করি যে আপনার উত্তরটি সমস্ত ঘাঁটিগুলিকে coversেকে রেখেছে।
এইটবিটটনি

3
@ আইটবিটটনি: এই প্রশ্নে, গৃহীত উত্তরগুলি প্রশ্নকর্তার পক্ষে একটি ভাল সমাধান তবে উত্তরগুলি পুরো গল্পটি বলে না। এসএসএইচ নিজেই কিছু উত্স হয় না। যদি আপনার লগইন শেলটিকে ব্যাশ হিসাবে চিহ্নিত করা হয় bash, তবে এটি উত্স .bash_profileবা .profileএকটি ইন্টারেক্টিভ লগইন এবং .bashrcএকটি ইন্টারঅ্যাক্টিভ লগইনের জন্য। যদি আপনার লগইন শেলটি shবা ছাই বা ksh হিসাবে বাশ থাকে তবে এটি .profileইন্টারেক্টিভ লগইন এবং অ-ইন্টারেক্টিভ লগইনের জন্য কিছুই নয়।
গিলস 'অশুভ হওয়া বন্ধ করুন'

উত্তর:


12

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

ssh somehost '. ~/.profile; exec ~/some/path/somescript.py'

আপনার মধ্যে পরিবেশের পরিবর্তনশীলগুলি স্থাপন করা উচিত নয় .bashrc: এই ফাইলটি ইন্টারেক্টিভ শেলগুলির জন্য বোঝানো হয়েছে এবং ব্যাশের প্রতিটি উদাহরণে এটি পড়া হয়। এনভায়রনমেন্ট ভেরিয়েবলগুলি সেট করা উচিত .profile, যা আপনি লগ ইন করার সময় পড়তে হয় Apart খুব কম সংখ্যক লোক ছাড়াও যারা বোর্ন-স্টাইলের শেলটি তাদের লগইন শেল হিসাবে .profileব্যবহার করে না, তারা বাশ বা জেডএস ব্যবহার করে বা না করে সবার জন্য কাজ করে ইন্টারেক্টিভভাবে সিএসএস বা ফিশ .Bashrc এবং .bash_profile এর মধ্যে পার্থক্যটিও দেখুন , ব্যাশ সহ পরিবেশের ভেরিয়েবল সেটআপ করার জন্য কোন সেটআপ ফাইলগুলি ব্যবহার করা উচিত?

বলা হচ্ছে, আপনি যখন কোনও নির্দিষ্ট কী দিয়ে ssh ওভারে লগইন করেন তখন স্ক্রিপ্ট উত্স করার একটি উপায় রয়েছে। দেখুন হোস্টের কাছে এসএসএইচিংয়ের সময় শেল কনফিগারেশন তথ্যটি ধাকানোর কোনও উপায় আছে কি? , এসএসএস-এর মাধ্যমে sh স্টার্টআপ ফাইল


এখন আমি কীভাবে এটি "উত্তর" চিহ্নিত করব? :-)
bzdjamboo

এই উত্তর বিভাগের বাম পাশে বামদিকে উপরে এবং নীচে ভোটের তীর এবং একটি ভোটের কাউন্টার থাকা উচিত। এর ঠিক নীচে একটি চেকবক্সের রূপরেখা থাকা উচিত। আপনি উত্তরটি ক্রিয়া করতে সক্রিয় করতে ক্লিক করতে পারেন that
কালেব

আপনাকে আবারও ধন্যবাদ, তবে আপাতদৃষ্টিতে আপনার উত্তরগুলি আমার সমস্যার সমাধান করেনি।
bzdjamboo

সমস্যাটির নতুন গঠন এবং এটির মূল সম্পর্কে আমার বর্তমান বোঝার জন্য এখানে is
bzdjamboo

দেখে মনে হচ্ছে যে আমি এখানে 60 বা তার বেশি অক্ষর যোগ করতে পারি না তাই আমার প্রশ্নটি আবার আলাদাভাবে জিজ্ঞাসা করতে হবে। দুঃখিত আব। যে। আবার, এটির সমাধান করা হয়নি, এবং কয়েক দিন ধরে আরও অনেক খনন করা কোনও উপকারে আসেনি।
bzdjamboo

0

আমারও একই সমস্যা ছিল, তবে আমার জন্য সমাধানটি আলাদা ছিল। আমার ব্যবহারকারী বাশকে শেল হিসাবে ব্যবহার করার জন্য কনফিগার করা হয়নি, পরিবর্তে এটি শ্যাশ হিসাবে zsh ব্যবহার করেছে, সুতরাং ব্যাশ ডট ফাইলগুলি লগইনে চলছিল না। কোনও পাঠ্য সম্পাদক দিয়ে / ইত্যাদি / পাসডাব্লুটি খুলুন এবং আপনার ব্যবহারকারীর নাম এবং এটি কী শেল ব্যবহার করে তা সন্ধান করুন:

root:x:0:0:root:/root:/bin/zsh

আমার ব্যবহারকারীর এন্ট্রিটি কেমন দেখাচ্ছে। লক্ষ্য করুন এটি / বিন / বাশের পরিবর্তে / বিন / জ্যাশ বলেছে। Zsh এর জন্য সঠিক ডট ফাইলটি ~ / .zprofile of আপনি ssh ব্যবহার করে লগইন করলেই এর সামগ্রীগুলি চালিত হবে।

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