Launching options of afb-daemon
The launch options for binder afb-daemon are:
-v, --verbose Verbose Mode, repeat to increase verbosity
-c, --color Colorize the ouput
-q, --quiet Quiet Mode, repeat to decrease verbosity
-l, --log=xxxx Tune log level
--foreground Get all in foreground mode
--background Get all in background mode
--daemon Get all in background mode
-n, --name=xxxx Set the visible name
-p, --port=xxxx HTTP listening TCP port [default 1234]
--roothttp=xxxx HTTP Root Directory [default no root http (files not served but apis still available)]
--rootbase=xxxx Angular Base Root URL [default /opa]
--rootapi=xxxx HTML Root API URL [default /api]
--alias=xxxx Multiple url map outside of rootdir [eg: --alias=/icons:/usr/share/icons]
--apitimeout=xxxx Binding API timeout in seconds [default 20]
--cntxtimeout=xxxx Client Session Context Timeout [default 32000000]
--cache-eol=xxxx Client cache end of live [default 100000]
-w, --workdir=xxxx Set the working directory [default: $PWD or current working directory]
-u, --uploaddir=xxxx Directory for uploading files [default: workdir]
--rootdir=xxxx Root Directory of the application [default: workdir]
--ldpaths=xxxx Load bindings from dir1:dir2:... [default = /opt/jobol/lib64/afb]
-b, --binding=xxxx Load the binding of path
--weak-ldpaths=xxxx Same as --ldpaths but ignore errors
--no-ldpaths Discard default ldpaths loading
-t, --token=xxxx Initial Secret [default=random, use --token= to allow any token]
-r, --random-token Enforce a random token
-V, --version Display version and copyright
-h, --help Display this help
--ws-client=xxxx Bind to an afb service through websocket
--ws-server=xxxx Provide an afb service through websockets
-A, --auto-api=xxxx Automatic load of api of the given directory
--session-max=xxxx Max count of session simultaneously [default 200]
--tracereq=xxxx Log the requests: no, common, extra, all
--traceevt=xxxx Log the events: no, common, extra, all
--traceses=xxxx Log the sessions: no, all
--traceapi=xxxx Log the apis: no, common, api, event, all
--traceglob=xxxx Log the globals: none, all
--traceditf=xxxx Log the daemons: no, common, all
--tracesvc=xxxx Log the services: no, all
--call=xxxx call at start format of val: API/VERB:json-args
--no-httpd Forbid HTTP service
-e, --exec Execute the remaining arguments
-M, --monitoring Enable HTTP monitoring at <ROOT>/monitoring/
-C, --config=xxxx Load options from the given config file
-Z, --dump-config Dump the config to stdout and exit
-s, --set=xxxx Set parameters ([API]/[KEY]:JSON or {"API":{"KEY":JSON}}
-o, --output=xxxx Redirect stdout and stderr to output file
help
Prints help with available options
version
Display version and copyright
verbose
Increases the verbosity, can be repeated
color
Add basic colorization to the ouput.
quiet
Decreases the verbosity, can be repeated
log=xxxx
Tune the log level mask. The levels are:
- error
- warning
- notice
- info
- debug
The level can be set using + or -.
Examples | descritpion |
---|---|
error,warning | selects only the levels error and warning |
+debug | adds level debug to the current verbosity |
-warning | remove the level warning from the current verbosity |
+warning-debug,info | Adds error and remove errors and warnings |
port=xxxx
HTTP listening TCP port [default 1234]
workdir=xxxx
Directory where the daemon must run [default: $PWD if defined or the current working directory]
uploaddir=xxxx
Directory where uploaded files are temporarily stored [default: workdir]
rootdir=xxxx
Root directory of the application to serve [default: workdir]
roothttp=xxxx
Directory of HTTP served files. If not set, files are not served but apis are still accessible.
rootbase=xxxx
Angular Base Root URL [default /opa]
This is used for any application of kind OPA (one page application). When set, any missing document whose url has the form /opa/zzz is translated to /opa/#!zzz
rootapi=xxxx
HTML Root API URL [default /api]
The bindings are available within that url.
alias=xxxx
Maps a path located anywhere in the file system to the a subdirectory. The syntax for mapping a PATH to the subdirectory NAME is: --alias=/NAME:PATH.
Example: --alias=/icons:/usr/share/icons maps the content of /usr/share/icons within the subpath /icons.
This option can be repeated.
apitimeout=xxxx
binding API timeout in seconds [default 20]
Defines how many seconds maximum a method is allowed to run. 0 means no limit.
cntxtimeout=xxxx
Client Session Timeout in seconds [default 32000000 that is 1 year]
cache-eol=xxxx
Client cache end of live [default 100000 that is 27,7 hours]
session-max=xxxx
Maximum count of simultaneous sessions [default 200]
ldpaths=xxxx
Load bindings from given paths separated by colons as for dir1:dir2:binding1.so:... [default = $libdir/afb]
You can mix path to directories and to bindings. The sub-directories of the given directories are searched recursively.
The bindings are the files terminated by '.so' (the extension so denotes shared object) that contain the public entry symbol.
weak-ldpaths=xxxx
Same as --ldpaths but instead of stopping on error, ignore errors and continue.
binding=xxxx
Load the binding of given path.
token=xxxx
Initial Secret token to authenticate.
If not set, no client can authenticate.
If set to the empty string, then any initial token is accepted.
random-token
Generate a random starting token. See option --exec.
ws-client=xxxx
Transparent binding to a binder afb-daemon service through a WebSocket.
The value of xxxx is either a unix naming socket, of the form "unix:path/api", or an internet socket, of the form "host:port/api".
ws-server=xxxx
Provides a binder afb-daemon service through WebSocket.
The value of xxxx is either a unix naming socket, of the form "unix:path/api", or an internet socket, of the form "host:port/api".
foreground
Get all in foreground mode (default)
daemon
Get all in background mode
no-httpd
Forbids HTTP serve
exec
Must be the last option for afb-daemon. The remaining arguments define a command that afb-daemon will launch. The sequences @p, @t and @@ of the arguments are replaced with the port, the token and @.
tracereq=xxxx
Trace the processing of requests in the log file.
Valid values are 'no' (default), 'common', 'extra' or 'all'.
traceapi=xxxx
Trace the accesses to functions of class api.
Valid values are 'no' (default), 'common', 'api', 'event' or 'all'.
traceevt=xxxx
Trace the accesses to functions of class event.
Valid values are 'no' (default), 'common', 'extra' or 'all'.
call=xxx
Call a binding at start (can be be repeated). The values are given in the form API/VERB:json-args.
Example: --call 'monitor/set:{"verbosity":{"api":"debug"}}'
monitoring
Enable HTTP monitoring at
name=xxxx
Set the visible name
auto-api=xxxx
Automatic activation of api of the given directory when the api is missing.
config=xxxx
Load options from the given config file
This can be used instead of arguments on the command line.
Example:
afb-daemon \
--no-ldpaths \
--binding /home/15646/bindings/binding45.so \
--binding /home/15646/bindings/binding3.so \
--tracereq common \
--port 5555 \
--token SPYER \
--set api45/key:54027a5e3c6cb2ca5ddb97679ce32f185b067b0a557d16a8333758910bc25a72 \
--exec /home/15646/bin/test654 @p @t
is equivalent to:
afb-daemon --config /home/15646/config1
when the file /home/15646/config1 is:
{
"no-ldpaths": true,
"binding": [
"\/home\/15646\/bindings\/binding45.so",
"\/home\/15646\/bindings\/binding3.so"
],
"tracereq": "common",
"port": 5555,
"token": "SPYER",
"set" : {
"api45": {
"key": "54027a5e3c6cb2ca5ddb97679ce32f185b067b0a557d16a8333758910bc25a72"
}
},
"exec": [
"\/home\/15646\/bin\/test654",
"@p",
"@t"
]
}
The options are the keys of the config object.
See option --dump-config
dump-config
Output a JSON representation of the configuration resulting from environment and options.
output=xxxx
Redirect stdout and stderr to output file
set=xxxx
Set values that can be retrieved by bindings.
The set value can have different formats.
The most generic format is {"API1":{"KEY1":VALUE,"KEY2":VALUE2,...},"API2":...}
This example set 2 keys for the api chook:
afb-daemon -Z --set '{"chook":{"account":"urn:chook:b2ca5ddb97679","delay":500}}'
{
"set": {
"chook": {
"account": "urn:chook:b2ca5ddb97679",
"delay": 500
}
}
}
An other format is: [API]/[KEY]:VALUE. When API is omitted, it take the value "". When KEY is ommitted, it take the value of "".
The settings for the API * are globals and apply to all bindings.
The settings for the KEY * are mixing the value for the API.
The following examples are all setting the same values:
afb-daemon --set '{"chook":{"account":"urn:chook:b2ca5ddb97679","delay":500}}'
afb-daemon --set 'chook/*:{"account":"urn:chook:b2ca5ddb97679","delay":500}'
afb-daemon --set 'chook/:{"account":"urn:chook:b2ca5ddb97679","delay":500}'
afb-daemon --set 'chook/account:"urn:chook:b2ca5ddb97679"' --set chook/delay:500