Skip to content

Environment Variables

Environment Variables

In Finit v4.3 support for setting environment variables in finit.conf, and any *.conf, was added. It is worth noting that these are global and shared with all services -- the only way to have a service-local environment is detailed in Services Environment.

The syntax for global environment variables is straight forward. In Finit v4.4 the set keyword was added for completeness, but the old syntax (without the set prefix) is still honored:

set foo=bar
set baz="qux"

On reload of .conf files, all tracked environment variables are cleared so if foo=bar is removed from finit.conf, or any finit.d/*.conf file, it will no longer be used by Finit or any new (!) started run/tasks or services. The environment of already started processes can not be changed.

The only variables reset to sane defaults on .conf reload are:

PATH=_PATH_STDPATH
SHELL=_PATH_BSHELL
LOGNAME=root
USER=root

It is entirely possible to override these as well from the .conf files, but be careful. Changing SHELL changes the behavior of system() and a lot of other commands as well.