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 時点では、古い安定ブランチにマージされていません。

いくつかの参考資料:

関連情報