如何在 Upstart 中附加到环境变量?

如何在 Upstart 中附加到环境变量?

我将以下内容放入 /etc/init/myjob.conf 文件中,但似乎不起作用

env PATH=$PATH:/mnt/data/src
env PYTHONPATH=$PYTHONPATH:/mnt/progs/link

是否有可能以某种方式附加到环境变量。

答案1

您不能在 upstart 脚本中附加变量,您需要使用外部文件并在脚本部分中获取它:

创建一个/etc/默认/我的作业文件内容如下:

env PATH=$PATH:/mnt/data/src
env PYTHONPATH=$PYTHONPATH:/mnt/progs/link
export PATH
export PYTHONPATH

然后在/etc/init/myjob.conf在你需要的地方获取它

script 
    . /etc/default/myjob
    exec command
end script

虽然这看起来不必要地复杂,但实际上是正确的,因为 init 脚本文件应该在软件包版本之间更改,而 /etc/default/appname 是配置文件,默认情况下不会被覆盖

答案2

env VAR=foo您可以按照在 upstart 配置文件中的方式添加它们:

http://upstart.ubuntu.com/cookbook/#environment-variables

答案3

您可以将以下内容放入 /etc/environment 文件中:

PATH="/mnt/data/src:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

PYTHONPATH="/mnt/progs/link"

当然,这种方法不会“附加”,但由于这是主要环境变量,所以没有必要,其他应用程序应该附加到它们。

答案4

导出 PATH=~/bin:"$PATH"

你应该添加这个~/.bashrc文件在每个用户会话中工作。

您应该重新启动才能看到它正常工作,或者尝试使用. .bashrc命令而不重新启动。

相关内容