Когда я запускаю свою программу в интерактивном режиме, она работает нормально:
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
для неинтерактивного входа в систему . Если ваша оболочка входа в систему bash вызывается как sh
или ash или ksh, то она используется .profile
для интерактивного входа и ничего для неинтерактивного входа.