![在机器上工作和通过 ssh 执行相同任务有什么区别?](https://linux22.com/image/1473445/%E5%9C%A8%E6%9C%BA%E5%99%A8%E4%B8%8A%E5%B7%A5%E4%BD%9C%E5%92%8C%E9%80%9A%E8%BF%87%20ssh%20%E6%89%A7%E8%A1%8C%E7%9B%B8%E5%90%8C%E4%BB%BB%E5%8A%A1%E6%9C%89%E4%BB%80%E4%B9%88%E5%8C%BA%E5%88%AB%EF%BC%9F.png)
我一直在大学的一台本地机器上工作,该机器位于我可以访问的服务器上。
我有一些C代码并能够按预期执行代码的并行运行。
但是当我在其他地方使用 ssh 时我得到
$ mpirun -np 4 prime.c
/usr/lib/command-not-found: /usr/bin/python3: bad interpreter: Permission denied
现在我在大学机器上有两个终端选项卡,一个在 ssh 下,它给了我上面的内容,和在家里一样。另一个选项卡没有 ssh,但工作正常。
me@server:~/Desktop/path/to/folder$ mpirun -np 4 prime.c
我无法弄清楚,因为我根本没有运行 Python 脚本。我在大学里没有 root 权限,但当我在那里时这不是问题。
任何建议都很好。
答案1
现在我在大学机器上有两个终端选项卡,一个在 ssh 下,它给了我上面的内容,和在家里一样。另一个选项卡没有 ssh,但工作正常。
hostname -f
您可以通过在两个选项卡中运行或hostname -i
比较结果来检查它是否实际上是同一台机器。
另外,在大学机器上运行ssh localhost
然后运行您的 mpi 命令。我希望它会运行良好并证明它实际上与 ssh 无关。只是您连接的机器具有不同的配置。
答案2
根据您的 shell 配置,您可能$PATH
在交互运行时没有相同的配置。尝试通过 ssh 登录到交互式 shell echo $PATH
,然后通过客户端上的单个命令行执行相同的操作。