【问题标题】:Setting environment variable in Ubuntu at boot time (via script)在启动时在 Ubuntu 中设置环境变量(通过脚本)
【发布时间】:2017-01-19 04:43:46
【问题描述】:

我想在 Ubuntu 机器 (10.04) 上设置几个环境变量,但我想通过脚本创建它们的值,就像:

export THE_ENV_VAR=$(script_to_execute_and_use_stdout_from)

我尝试过设置/etc/environment,但这只会逐字复制rhs

我尝试在启动时在/etc/init.d/ 中执行脚本,但这似乎不起作用。

想法?

【问题讨论】:

  • 这个问题你考虑过Ask Ubuntu吗?
  • @Nano:不,谢谢你的提示。
  • 没问题!我很高兴它有所帮助。
  • 无论如何,为什么不尝试将其设置为.bashrc?我会做类似export THE_ENV_VAR='script_to_execute_and_use_stdout_from_within_backticks'
  • @Nano:那只会为 bash 会话设置它,我需要环境。为所有用户设置的变量(特别是 www-data)

标签: ubuntu environment-variables startup


【解决方案1】:

您需要将导出语句写入/etc/bash.bashrc 文件,这是一个系统范围的.bashrc 文件,将为所有系统用户设置环境:)

编辑:一种方法是在启动期间填充缓存文件,并让用户脚本从该缓存文件中读取。

【讨论】:

  • 是的,但这是在启动时运行,还是在用户通过 ssh 连接时运行?变量的设置涉及执行需要相当长的时间的命令,这就是为什么我希望在启动时设置它们。
  • 当用户通过 ssh(corse 的 bash 会话)连接时运行
  • 谢谢,但这不是我需要的。有趣的是,似乎没有办法做到这一点。
  • 这是一种肮脏的方法:添加脚本“script_to_execute_and_use_stdout_from”以启动并将结果输出到文件然后,当用户连接时,它从该文件中读取结果而不是执行脚本,这应该快得多。
  • 谢谢 m0ntassar,我现在就是这样做的,我有一种结果缓存,以便第一个连接的用户填充缓存。在随后的调用中,它进行得很快。没想到在启动时运行它,但你是对的,它应该可以正常工作:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-05-17
  • 2015-09-28
  • 1970-01-01
  • 2016-12-23
  • 1970-01-01
  • 1970-01-01
  • 2021-12-10
相关资源
最近更新 更多