程序运行时是否获取 .bashrc 源?

程序运行时是否获取 .bashrc 源?

我将其附加到我的文件(Ubuntu v12)PATH中的环境变量中。.bashrc我还有一项服务(Atlassian Bamboo),它依赖于对PATH.当我重新启动服务(以.bashrc进行更改的本地用户身份运行)时,它是否会“获取”文件.bashrc以刷新环境变量,以便拥有它们?或者我需要重新启动机器吗?

答案1

除非手动请求,否则非交互式 shell 不会获取源.bashrc,而且,该服务可能不会调用 shell(除非它有某种包装脚本)。

如何进行取决于您到底想要实现什么目标。服务通常有自己的配置文件来修改它们的行为,并且还可以为每个服务专门指定环境(我不是 Ubuntu 用户,所以我不确定这在你的系统上如何工作 - 它是新贵,对吧?) 。您还可以修改.profile登录时加载的变量 - 所有孩子都可以访问在此文件中导出的变量。如果该服务实际上由 init 系统全局运行(由 root 切换到您的用户名),则这也不起作用。/etc/environment可能有用,但我不推荐这样做,它很丑陋。

就您而言,唯一真正干净的方法是为您的服务设置环境。

答案2

对于非交互式 bash shell,例如 bash 脚本,该.bashrc文件是不是来源。只有不是登录 shell 的交互式 bash shell 才会获取此文件。有关更多信息,您可以查看 bash(1) 手册页的 INVOCATION 部分。

无论如何,服务通常不会是交互式 shell 的后代,因此更改.bashrc不会对其产生任何影响。

相关内容