Foreman和PATH环境变量

时间:2013-07-24 13:42:44

标签: bash ubuntu sudo foreman upstart

我使用foreman export创建upstart脚本(在ubuntu上)。 Foreman生成一个像这样的暴发脚本:

start on starting app
stop on stopping app
respawn

exec su - ubuntu -c ...

问题:在启动应用程序之前,我需要运行一堆改变环境的脚本(包括PATH)。但是,在ubuntu上使用su / sudo执行某些操作会重置PATH。并且,如果没有脚本设置的PATH,我的应用程序无法运行。有没有解决办法?

2 个答案:

答案 0 :(得分:1)

尝试su -p,它会保留环境(manpage)

答案 1 :(得分:1)

作为替代方案,您可以使用“sudo -E”

    -E          The -E (preserve environment) option indicates to the security
                policy that the user wishes to preserve their existing
                environment variables. The security policy may return an error
                if the -E option is specified and the user does not have
                permission to preserve the environment.