【发布时间】:2014-09-05 21:34:42
【问题描述】:
我正在尝试将我的 /etc/rc.local 设置为以另一个用户身份在重新启动时自动启动一个进程。出于某种原因,该用户的 .bash_rc 似乎没有被初始化。
这是我添加到 /etc/rc.local 的命令:
sudo su -l batchuser -c "/home/batchuser/app/run_prod.sh &"
这不起作用,所以我也尝试了这个:
sudo su -l batchuser -c ". /home/batchuser/.profile; /home/batchuser/app/run_prod.sh &"
run_prod.sh 只是启动了一个 python 脚本。 python 脚本失败,因为它引用了在 .bash_rc 中初始化的 python 路径中的模块
编辑:当我这样做时它会起作用
sudo su -l batchuser -c "export PYTHONPATH=/my/python/path; /home/batchuser/app/run_prod.sh &"
为什么这行得通,而不是上面的陈述? .bashrc 怎么没有初始化?
【问题讨论】:
-
batchuser的 sudoers(5) 设置是什么(可通过sudo -l -U batchuser获得)?
标签: python bash environment-variables su