运行服务启动脚本时未加载环境变量

时间:2017-04-04 01:46:11

标签: linux bash shell

当我使用./script启动服务脚本时,能够通过代理获取凭据(找到环境变量),如果我启动服务脚本,如服务脚本,则无法通过代理获取凭据(未找到环境变量) ,找不到代理。如何通过服务脚本启动来运行此脚本?

脚本:

get

当我运行像./script start这样的脚本时,脚本能够找到代理设置并传递代理设置。但是使用服务脚本运行时无法找到代理设置。在使用服务运行脚本时,我是否错过了加载环境变量的任何内容?

1 个答案:

答案 0 :(得分:1)

来自man service

  

service在尽可能可预测的环境中运行System V init脚本,删除大多数环境变量,并将当前工作目录设置为/。

因此,当您尝试运行服务脚本时,只剩下几个env变量,如TERMLANG,您的http_proxyhttps_proxy将被丢弃。要使用您需要的环境变量,您可以使用以下命令在文件/etc/default/yourservice中定义它们:

http_proxy=http://yourproxy.com
https_proxy=http://yourproxy.com

source它位于脚本的开头:

[ -f /etc/default/yourservice ] && . /etc/default/yourservice