Configuration
Init
The main configuration to create application groups:
init name {
application_groups [
applicationgroup.name
]
}
E.g.:
init web {
application_groups ["applicationgroup.webstack"]
}
Application Group
application_group name {
applications [
"application.name"
]
}
E.g.:
application_group webstack {
applications [
"application.db"
"application.www"
]
}
Application
application "name" {
mode application_mode
requires [other applications]
start [executable start args]
stop [executable stop args]
pidfile file
dir working_directory
env {
new var1 value
new var2 value
pass oldname newname
}
env_file env_filename
stdout stream_destination
stderr stream_destination
uid int
gid int
healthchecks [
"healthcheck.name"
]
}
application_mode can be one of oneshot, simple or forking
Applications are started with a clean environment. Environment
variables can be added with env and env_file fields.
env values can take two forms. env new <name> <value> creates a
new variable with the supplied value. env pass <oldname> <newname>
creates a new variable named newname with the value taken from
Riffol’s environment variable oldname.
env {
new {
VAR1 value1
VAR2 value2
}
pass {
ENV1 VAR3
ENV2 VAR4
}
}
This creates two new environment variables, VAR1 and VAR2 with
values value1 and value2 respectively. It also passes the
variables ENV1 and ENV2 into new variables VAR3 nad VAR4
respectively.
env_file <filename> reads a file of environment variables, one per
line in the following format:
VAR1=value1
VAR2=value2
VAR3
VAR4=
VAR1 and VAR2 are set to value1 and value2
respectively. VAR3 and VAR4 are set to the empty value "".
The env_file field is processed before the env field so variables
set up using env will override those read from env_file.
stream_destination can be one of:
file [
filename
]
syslog {
socket unix_sock_address
facility syslog_facility
severity syslog_severity
}
rsyslog {
address remote_inet_address
local local_inet_address
facility syslog_facility
severity syslog_severity
}
syslog_facility is one of kern, user, mail, daemon, auth,
syslog, lpr, news, uucp, cron, authpriv, ftp, local0,
local1, local2, local3, local4, local5, local6 or
local7. (default daemon)
syslog_severity is one of emerg, alert, crit, err,
warning, notice, info or debug (default debug)
healthcheckfail can be one of start, restart or stop.
E.g.:
application www {
exec "/etc/init.d/http"
dir "/var/www"
env {
new var1key var1value
new var2key var2value
pass oldname newname
}
env_file "/etc/httpd/morevars"
start start
stop stop
restart restart
stdout file "/var/log/riffol_www.log"
stderr syslog {
}
uid 0
gid 0
healthchecks [
"healthcheck.www"
]
healthcheckfail restart
}
Health Check
healthcheck name {
checks [
"class://value"
]
interval int
timeout int
}
There are several checks classes:
-
df, disk free space -
proc, process name -
tcp, TCP connection -
udp, UDP connection -
http, establish a http connection -
https, establish a https connection
Parameters:
-
interval, the interval of the check defined in seconds -
timeout, the timeout of network connections defined in seconds
E.g.:
healthcheck db {
checks [
"df:///var/lib/mysql:512"
"proc://mysqld",
"tcp://127.0.0.1:3306"
]
interval 60
timeout 10
}
Resource Limits
limits name {
max_procs int
max_mem int
}
e.g.:
limits db {
max_procs 4
max_mem 1024
}