Cuando ejecuto mi programa de forma interactiva, funciona bien:
ssh somehost
$ ~/some/path/somescript.py
Cuando ejecuto mi programa sobre ssh directamente, no funciona. La variable PYTHONPATHno está establecida porque .bashrcno tiene su origen.
ssh somehost ~/some/path/somescript.py
Si corro ssh somehost 'source ~/.bashrc; ~/some/path/somescript.py', funciona bien.
Pero esto último no funcionaría para otras personas, por ejemplo, usar tcsh y no tener ninguno ~/.bashrc).
¿Cuál es el comando para ejecutar una cosa a través de ssh en otro host que funciona para todos los shells?
bash, luego de TI fuentes .bash_profileo .profilepara un inicio de sesión interactivo, y .bashrcpara un inicio de sesión no interactiva. Si su shell de inicio de sesión se invoca bash como sho ash o ksh, .profilebusca un inicio de sesión interactivo y nada para un inicio de sesión no interactivo.