Slurm交互模式下如何自动加载共享存储中的.zshrc
解决srun启动交互式zsh自动加载共享存储.zshrc的问题
这问题我之前在集群上也碰到过,给你两个实用的解决方案,直接就能用:
方法1:直接指定zsh配置文件(最简洁)
zsh本身提供了--rcfile参数,可以让你跳过默认的~/.zshrc,直接加载指定路径的配置文件。你只需要把命令改成这样:
srun -N 1 --ntasks-per-node=1 --gres=gpu:1 --pty zsh --rcfile /shared_drive/razvan/.zshrc
这样启动的交互式zsh会自动加载你共享存储里的.zshrc,和正常登录时的体验完全一致。
方法2:通过命令链先加载配置再进入交互shell
如果因为某些原因--rcfile参数不生效(比如集群zsh版本较旧),可以用-c参数先执行source命令,再启动交互shell:
srun -N 1 --ntasks-per-node=1 --gres=gpu:1 --pty zsh -i -c "source /shared_drive/razvan/.zshrc; exec zsh"
这里的-i确保zsh以交互模式运行,exec zsh会替换当前的shell进程为新的交互式zsh,这样你之前source的配置会完全生效,不会出现执行完命令就退出的情况。
补充说明
因为你的集群分配节点的$HOME是空的,zsh默认不会自动加载任何配置文件,所以这两种方法都能帮你绕过这个限制,直接加载共享存储里的个性化配置。
内容的提问来源于stack exchange,提问作者Razvan Valentin Marinescu
相关产品推荐
相关产品推荐

