Правильный путь к источнику .bashrc для неинтерактивной оболочки - PullRequest
0 голосов
/ 05 мая 2019

Я пытался решить проблемы, чтобы иметь возможность запускать openmpi на нескольких узлах.

Изначально у меня была проблема с переменными $PATH и $LD_LIBRARY_PATH, которые не обновлялись из файла .bashrc с помощью openmpiсеанса, поэтому я вручную добавил --prefix /path/to/openmpi для решения этой проблемы.

Оказывается, что даже переменные пути anaconda также не загружаются.Поэтому в конечном итоге мне нужно получить файл ~/.bashrc из моего домашнего каталога.Как я могу это сделать?Может кто-нибудь помочь мне, пожалуйста?

ОБНОВЛЕНИЕ 01:

Я написал простой сценарий оболочки, чтобы проверить версию Python

python --version

ипопытался запустить его с openmpi как на локальной, так и на удаленной машине следующим образом:

mpirun --prefix /home/usama/.openmpi --hostfile hosts -np 4 bash script

И он возвращает

Python 2.7.12
Python 3.6.8 :: Anaconda, Inc.
Python 3.6.8 :: Anaconda, Inc.
Python 2.7.12

Подтверждение моего подозрения, что все, что openmpi делает для запуска удаленных процессов, нене вызывать / устанавливать правильные переменные окружения из файла ~ / .bashrc.Любая помощь от кого-то, кто работал с многоузловым openmpi?

ОБНОВЛЕНИЕ 02:

Простой grep среды ssh говорит мне, что мои переменные среды не обновляются, что можетбыть причиной проблемы.(Я даже пытался установить его в файле ~ / .ssh / environment)

$ ssh remote-node env | grep -i path

Кажется, он загружает только файл / etc / environment с настройкой только основных путей.Как мне это исправить?

1 Ответ

1 голос
/ 05 мая 2019

Может быть, вы должны бежать так. Я думаю. два способа помочь вам!

первый:

mpirun --prefix /home/usama/.openmpi --hostfile hosts -np 4 . ~/.bashrc && bash script

второй:

## 1. add this line to the script
. ~/.bashrc

## 2. run command as you do
mpirun --prefix /home/usama/.openmpi --hostfile hosts -np 4 bash script

...