当我使用./script启动服务脚本时,能够通过代理获取凭据(找到环境变量),如果我启动服务脚本,如服务脚本,则无法通过代理获取凭据(未找到环境变量) ,找不到代理。如何通过服务脚本启动来运行此脚本?
脚本:
get
当我运行像./script start这样的脚本时,脚本能够找到代理设置并传递代理设置。但是使用服务脚本运行时无法找到代理设置。在使用服务运行脚本时,我是否错过了加载环境变量的任何内容?
答案 0 :(得分:1)
来自man service
:
service在尽可能可预测的环境中运行System V init脚本,删除大多数环境变量,并将当前工作目录设置为/。
因此,当您尝试运行服务脚本时,只剩下几个env变量,如TERM
,LANG
,您的http_proxy
和https_proxy
将被丢弃。要使用您需要的环境变量,您可以使用以下命令在文件/etc/default/yourservice
中定义它们:
http_proxy=http://yourproxy.com
https_proxy=http://yourproxy.com
和source
它位于脚本的开头:
[ -f /etc/default/yourservice ] && . /etc/default/yourservice