为非交互式 shell 获取 .bashrc 的正确方法
Correct way to source .bashrc for non-interactive shell
我一直在努力解决能够在多个节点上 运行 openmpi 的问题。
最初我有一个问题,$PATH
和 $LD_LIBRARY_PATH
变量没有被 openmpi 会话从 .bashrc
文件更新,所以我手动添加 --prefix /path/to/openmpi
来解决这个问题.
事实证明,即使是 anaconda 路径变量也没有被加载。所以最终我需要从我的主目录获取 ~/.bashrc
文件。我怎样才能做到这一点?谁能帮帮我吗?
更新 01:
我写了一个简单的shell脚本来检查python
的版本
python --version
并尝试在本地和远程机器上使用 openmpi 运行 如下:
mpirun --prefix /home/usama/.openmpi --hostfile hosts -np 4 bash script
它returns
Python 2.7.12
Python 3.6.8 :: Anaconda, Inc.
Python 3.6.8 :: Anaconda, Inc.
Python 2.7.12
证实我的怀疑,无论 openmpi 对 运行 远程进程做什么,都不会从 ~/.bashrc 文件调用/设置适当的环境变量。使用过多节点 openmpi 的人有任何帮助吗?
更新 02:
一个简单的 ssh 环境 grep 告诉我我的环境变量没有更新,这可能是问题的原因。 (我什至尝试在 ~/.ssh/environment 文件中设置它)
$ ssh remote-node env | grep -i path
它似乎只加载了只有基本路径设置的 /etc/environment 文件。我该如何纠正?
也许你应该 运行 喜欢 this.I 猜测。
两种方式帮到你!
第一个:
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
我一直在努力解决能够在多个节点上 运行 openmpi 的问题。
最初我有一个问题,$PATH
和 $LD_LIBRARY_PATH
变量没有被 openmpi 会话从 .bashrc
文件更新,所以我手动添加 --prefix /path/to/openmpi
来解决这个问题.
事实证明,即使是 anaconda 路径变量也没有被加载。所以最终我需要从我的主目录获取 ~/.bashrc
文件。我怎样才能做到这一点?谁能帮帮我吗?
更新 01:
我写了一个简单的shell脚本来检查python
的版本python --version
并尝试在本地和远程机器上使用 openmpi 运行 如下:
mpirun --prefix /home/usama/.openmpi --hostfile hosts -np 4 bash script
它returns
Python 2.7.12
Python 3.6.8 :: Anaconda, Inc.
Python 3.6.8 :: Anaconda, Inc.
Python 2.7.12
证实我的怀疑,无论 openmpi 对 运行 远程进程做什么,都不会从 ~/.bashrc 文件调用/设置适当的环境变量。使用过多节点 openmpi 的人有任何帮助吗?
更新 02:
一个简单的 ssh 环境 grep 告诉我我的环境变量没有更新,这可能是问题的原因。 (我什至尝试在 ~/.ssh/environment 文件中设置它)
$ ssh remote-node env | grep -i path
它似乎只加载了只有基本路径设置的 /etc/environment 文件。我该如何纠正?
也许你应该 运行 喜欢 this.I 猜测。 两种方式帮到你!
第一个:
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