我正在使用 Fab 部署我的应用程序。我的应用程序的运行取决于 $HOME/.bashrc 中设置的一些环境变量。但是,当我使用 fab 使用以下命令运行应用程序时
run("java -jar app.jar")
此应用程序未按预期运行,因为我在 $HOME/.bashrc 中设置的环境变量(如 SMTP_HOST、SMTP_PORT)不适用于此应用程序?
我已经在 $HOME/.bashrc 中设置了环境变量,如下所示
export SMTP_PORT=abc
如何确保在执行 run() 命令以运行应用程序之前设置环境变量?
最佳答案
您可以在.bashrc
中找到以下几行:
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
这意味着 fabric 将永远不会在该 block 之后获取源代码,因为 fabric 运行您的命令非交互式(以 /bin/bash -l - 的形式) c some_command
)
所以简单的解决方法是将 export SMTP_PORT=abc
移动到 .bash_profile
或 .profile
关于python - .bashrc 中设置的 Fabric 环境变量不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25478917/