Process Environments

Crossbar.io Workers (Routers, Containers and Guests) process enviroments can be tuned via configuration.

Here is an example Guest process:

{
   "workers": [
      {
         "type": "guest",
         "executable": "/usr/bin/env",
         "options": {
            "env": {
               "inherit": false,
               "vars": {
                  "AWESOME": "sure"
               }
            }
         }
      }
   ]
}

The options.env dictionary has the following configuration parameters:

option

description

inherit

If True, inherit the complete controller enviroment. If False, don’t inherit anything. If a list, only inherit the list of enviroment variables given (default: True)

vars

A dictionary of environment variables to set in the worker, e.g. {“FOOBAR”: “big”} (default: {})

options.env

allows you to control the environment that the process will run under.

options.env allows you to control the environment that the process will run under.

If options.env.inherit is a bool, the value determines whether the parent’s (Crossbar.io node controller) environment will be inherited by the guest/worker.

If options.env.inherit is a list, the values in the list specify the environment variables from the parent’s environment that will be inherited:

{
   "workers": [
      {
         "type": "guest",
         "executable": "/usr/bin/env",
         "options": {
            "env": {
               "inherit": ["HOME", "JAVA_HOME"],
               "vars": {
                  "AWESOME": "sure"
               }
            }
         }
      }
   ]
}

Finally, options.env.vars allows you to provide a dictionary (of string-value keys and values) that provide (an additional) list of enviroment variables to set.

Please note that on Windows, certain restrictions apply due to this. In particular, you cannot empty the enviroment of a guest/worker by setting inherit == false.