如何使用 FreeBSD 服务命令传递环境变量?

如何使用 FreeBSD 服务命令传递环境变量?

rc.subr${name}_env指定此项来设置环境变量:

${name}_env   A list of environment variables to run command
              with.  This will be passed as arguments to
              env(1) utility.

因此我尝试像这些方法一样通过我的 rc.conf 为名为 的守护进程使用它/etc/rc.d/mydaemon

/etc/rc.conf

mydaemon_env="MYD_ROOT"

启动时出现错误:

# root @ rahul in /etc/rc.d [10:52:49]
$ service mydaemon onestart
Starting mydaemon.
env: MYD_ROOT: No such file or directory
/etc/rc.d/mydaemon: WARNING: failed to start mydaemon

有人可以帮我解决我所遗漏的问题吗?

答案1

它应该是 格式的NAME=VALUE

mydaemon_env="MYD_ROOT=value"

答案2

该命令最近添加了一个新标志service。使用该-E标志,现在可以在使用命令启动守护进程时设置环境变量service。新标志将在 FreeBSD 14.0 及更高版本中可用。截至 2023-09-04,它尚未合并回较旧的稳定分支。

一些参考资料:

相关内容