O rc.subr ${name}_env
especifica isso para definir a variável de ambiente:
${name}_env A list of environment variables to run command
with. This will be passed as arguments to
env(1) utility.
Então tentei usá-lo como estes métodos, através do meu rc.conf para meu daemon chamado /etc/rc.d/mydaemon
.
em /etc/rc.conf
:
mydaemon_env="MYD_ROOT"
Isso dá erro ao iniciar:
# 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
Alguém poderia ajudar no que estou perdendo?
Responder1
É suposto estar no formato NAME=VALUE
.
mydaemon_env="MYD_ROOT=value"
Responder2
Um novo sinalizador foi adicionado recentemente ao service
comando. Com a -E
flag, agora é possível definir as variáveis de ambiente ao iniciar um daemon com o service
comando. A nova flag estará disponível no FreeBSD 14.0 e posterior. Em 04/09/2023, ele não foi fundido novamente em filiais estáveis mais antigas.
Algumas referências:
- O commit introduzindo a
-E
flag:https://cgit.freebsd.org/src/commit/usr.sbin/service/service.sh?id=194e059bb80334e6f4f791a186015b20d7f6f4b8