जब मैं अपने कार्यक्रम को अंतःक्रियात्मक रूप से चलाता हूं, तो यह ठीक काम करता है:
ssh somehost
$ ~/some/path/somescript.py
जब मैं अपने प्रोग्राम को सीधे ssh पर चलाता हूं, तो यह काम नहीं करता है। चर PYTHONPATHसेट नहीं है, क्योंकि .bashrcखट्टा नहीं है।
ssh somehost ~/some/path/somescript.py
अगर मैं दौड़ता हूं ssh somehost 'source ~/.bashrc; ~/some/path/somescript.py', तो यह ठीक काम करता है।
लेकिन बाद वाले कुछ अन्य लोगों के लिए काम नहीं करेंगे, जैसे tcsh का उपयोग करना और बिल्कुल नहीं होना ~/.bashrc)।
किसी अन्य होस्ट पर ssh के माध्यम से एक चीज़ चलाने की आज्ञा क्या है जो सभी गोले के लिए काम करती है?
bash, तो यह स्रोत .bash_profileया .profileएक इंटरैक्टिव लॉगिन के लिए, और .bashrcएक गैर-इंटरैक्टिव लॉगिन के लिए है। यदि आपका लॉगिन शेल बैश shया ऐश या ksh के रूप में है, तो यह .profileएक इंटरैक्टिव लॉगिन के लिए स्रोत है और एक गैर-इंटरैक्टिव लॉगिन के लिए कुछ भी नहीं है।