app.simple
Simplest configuration:
svcmgr -s <svcname> set --kw app#0.type=simple
check
scopable |
True |
required |
False |
provisioning |
False |
default |
False |
inheritance |
leaf > head |
scope order |
specific > generic |
true
execute <script> status on status evaluation. false
do nothing on status evaluation. <shlex expression>
execute the command on status evaluation.
check_timeout
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf > head |
scope order |
specific > generic |
convert |
duration |
Wait for <duration> before declaring the app launcher check action a failure. Takes precedence over timeout. If neither timeout nor check_timeout is set, the agent waits indefinitely for the app launcher to return. A timeout can be coupled with optional=true to not abort a service instance check when an app launcher did not return.
cwd
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf > head |
scope order |
specific > generic |
Change the working directory to the specified location instead of the default <pathtmp>
.
group
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf > head |
scope order |
specific > generic |
If the binary is owned by the root user, run it as the specified group instead of root.
info
scopable |
True |
required |
False |
provisioning |
False |
default |
False |
inheritance |
leaf > head |
scope order |
specific > generic |
true
execute <script> info on info action. false
do nothing on info action. <shlex expression>
execute the command on info action.
info_timeout
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf > head |
scope order |
specific > generic |
convert |
duration |
Wait for <duration> before declaring the app launcher info action a failure. Takes precedence over timeout. If neither timeout nor info_timeout is set, the agent waits indefinitely for the app launcher to return. A timeout can be coupled with optional=true to not abort a service instance info when an app launcher did not return.
kill
scopable |
True |
required |
False |
provisioning |
False |
default |
parent |
inheritance |
leaf > head |
scope order |
specific > generic |
candidates |
parent | tree |
Select a process kill strategy to use on resource stop. parent
kill only the parent process forked by the agent. tree
also kill its children.
limit_as
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf > head |
scope order |
specific > generic |
convert |
size |
limit_core
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf > head |
scope order |
specific > generic |
convert |
size |
limit_cpu
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf > head |
scope order |
specific > generic |
convert |
duration |
limit_data
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf > head |
scope order |
specific > generic |
convert |
size |
limit_fsize
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf > head |
scope order |
specific > generic |
convert |
size |
limit_memlock
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf > head |
scope order |
specific > generic |
convert |
size |
limit_nofile
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf > head |
scope order |
specific > generic |
convert |
size |
limit_nproc
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf > head |
scope order |
specific > generic |
convert |
size |
limit_stack
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf > head |
scope order |
specific > generic |
convert |
size |
limit_vmem
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf > head |
scope order |
specific > generic |
convert |
size |
script
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf > head |
scope order |
specific > generic |
Full path to the app launcher script. Or its basename if the file is hosted in the <pathetc>/<namespace>/<kind>/<name>.d/
path. This script must accept as arg0 the activated actions word: start
for start, stop
for stop, status
for check, info
for info.
start
scopable |
True |
required |
False |
provisioning |
False |
default |
False |
inheritance |
leaf > head |
scope order |
specific > generic |
true
execute <script> start on start action. false
do nothing on start action. <shlex expression>
execute the command on start.
start_timeout
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf > head |
scope order |
specific > generic |
convert |
duration |
Wait for <duration> before declaring the app launcher start action a failure. Takes precedence over timeout. If neither timeout nor start_timeout is set, the agent waits indefinitely for the app launcher to return. A timeout can be coupled with optional=true to not abort a service instance start when an app launcher did not return.
status_log
scopable |
True |
required |
False |
provisioning |
False |
default |
False |
inheritance |
leaf > head |
scope order |
specific > generic |
convert |
boolean |
Redirect the checker script stdout to the resource status info-log, and stderr to warn-log. The default is false
, for it is common the checker scripts outputs are not tuned for opensvc.
stop
scopable |
True |
required |
False |
provisioning |
False |
default |
False |
inheritance |
leaf > head |
scope order |
specific > generic |
true
execute <script> stop on stop action. false
do nothing on stop action. <shlex expression>
execute the command on stop action.
stop_timeout
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf > head |
scope order |
specific > generic |
convert |
duration |
Wait for <duration> before declaring the app launcher stop action a failure. Takes precedence over timeout. If neither timeout nor stop_timeout is set, the agent waits indefinitely for the app launcher to return. A timeout can be coupled with optional=true to not abort a service instance stop when an app launcher did not return.
timeout
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf > head |
scope order |
specific > generic |
convert |
duration |
Wait for <duration> before declaring the app launcher action a failure. Can be overriden by <action>_timeout. If no timeout is set, the agent waits indefinitely for the app launcher to return. A timeout can be coupled with optional=true to not abort a service instance action when an app launcher did not return.
user
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf > head |
scope order |
specific > generic |
If the binary is owned by the root user, run it as the specified user instead of root.
blocking_post_provision
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf > head |
scope order |
specific > generic |
A command or script to execute after the resource provision action. Errors interrupt the action.
blocking_post_start
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf > head |
scope order |
specific > generic |
A command or script to execute after the resource start action. Errors interrupt the action.
blocking_post_stop
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf > head |
scope order |
specific > generic |
A command or script to execute after the resource stop action. Errors interrupt the action.
blocking_post_unprovision
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf > head |
scope order |
specific > generic |
A command or script to execute after the resource unprovision action. Errors interrupt the action.
blocking_pre_provision
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf > head |
scope order |
specific > generic |
A command or script to execute before the resource provision action. Errors interrupt the action.
blocking_pre_start
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf > head |
scope order |
specific > generic |
A command or script to execute before the resource start action. Errors interrupt the action.
blocking_pre_stop
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf > head |
scope order |
specific > generic |
A command or script to execute before the resource stop action. Errors interrupt the action.
blocking_pre_unprovision
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf > head |
scope order |
specific > generic |
A command or script to execute before the resource unprovision action. Errors interrupt the action.
configs_environment
scopable |
True |
required |
False |
provisioning |
False |
default |
[] |
inheritance |
leaf > head |
scope order |
specific > generic |
convert |
shlex |
The whitespace separated list of <var>=<config name>/<key path>
. A shell expression spliter is applied, so double quotes can be around <config name>/<key path>
only or whole <var>=<config name>/<key path>
. Variables are uppercased.
disable
scopable |
True |
required |
False |
provisioning |
False |
default |
False |
inheritance |
leaf |
scope order |
specific > generic |
candidates |
True | False |
convert |
boolean |
A disabled resource will be ignored on service startup and shutdown. Its status is always reported n/a
.
Set in DEFAULT, the whole service is disabled. A disabled service does not honor start and stop actions. These actions immediately return success.
sudo svcmgr -s <path> disable only sets DEFAULT.disable. As resources disabled state is not changed, sudo svcmgr -s <path> enable does not enable disabled resources.
encap
scopable |
True |
required |
False |
provisioning |
False |
default |
False |
inheritance |
leaf > head |
scope order |
specific > generic |
candidates |
True | False |
convert |
boolean |
Set to true
to ignore this resource in the nodes context and consider it in the encapnodes context. The resource is thus handled by the agents deployed in the service containers.
environment
scopable |
True |
required |
False |
provisioning |
False |
default |
[] |
inheritance |
leaf > head |
scope order |
specific > generic |
convert |
shlex |
The whitespace separated list of <var>=<config name>/<key path>
. A shell expression spliter is applied, so double quotes can be around <config name>/<key path>
only or whole <var>=<config name>/<key path>
. Variables are uppercased.
monitor
scopable |
True |
required |
False |
provisioning |
False |
default |
False |
inheritance |
leaf > head |
scope order |
specific > generic |
candidates |
True | False |
convert |
boolean |
A down monitored resource will trigger a node suicide if the monitor thinks it should be up and the resource can not be restarted.
optional
scopable |
True |
required |
False |
provisioning |
False |
default |
true for tasks, syncs and resources tagged 'noaction', else false |
inheritance |
leaf > head |
scope order |
specific > generic |
convert |
tristate |
Action failures on optional resources are logged but do not stop the action sequence. Also the optional resource status is not aggregated to the instance 'availstatus', but aggregated to the 'overallstatus'. Resource tagged noaction and sync resources are automatically considered optional. Useful for resources like dump filesystems for example.
pg_blkio_weight
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf |
scope order |
specific > generic |
depends |
create_pg in [True] |
convert |
integer |
Block IO relative weight. Value: between 10 and 1000. Kernel default: 1000.
pg_cpu_quota
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf |
scope order |
specific > generic |
depends |
create_pg in [True] |
The percent ratio of one core to allocate to the process group if % is specified, else the absolute value to set in the process group parameter. For example, on Linux cgroups, -1
means unlimited, and a positive absolute value means the number of microseconds to allocate each period. 50%@all
means 50% of all cores, and 50%@2
means 50% of two cores.
pg_cpu_shares
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf |
scope order |
specific > generic |
depends |
create_pg in [True] |
convert |
integer |
Kernel default value is used, which usually is 1024 shares. In a cpu-bound situation, ensure the service does not use more than its share of cpu ressource. The actual percentile depends on shares allowed to other services.
pg_cpus
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf |
scope order |
specific > generic |
depends |
create_pg in [True] |
Allow service process to bind only the specified cpus. Cpus are specified as list or range : 0,1,2 or 0-2
pg_mem_limit
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf |
scope order |
specific > generic |
depends |
create_pg in [True] |
convert |
size |
Ensures the service does not use more than specified memory (in bytes). The Out-Of-Memory killer get triggered in case of tresspassing.
pg_mem_oom_control
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf |
scope order |
specific > generic |
depends |
create_pg in [True] |
convert |
integer |
A flag (0 or 1) that enables or disables the Out of Memory killer for a cgroup. If enabled (0), tasks that attempt to consume more memory than they are allowed are immediately killed by the OOM killer. The OOM killer is enabled by default in every cgroup using the memory subsystem; to disable it, write 1.
pg_mem_swappiness
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf |
scope order |
specific > generic |
depends |
create_pg in [True] |
convert |
integer |
Set a swappiness value for the process group.
pg_mems
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf |
scope order |
specific > generic |
depends |
create_pg in [True] |
Allow service process to bind only the specified memory nodes. Memory nodes are specified as list or range : 0,1,2 or 0-2
pg_vmem_limit
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf |
scope order |
specific > generic |
depends |
create_pg in [True] |
convert |
size |
Ensures the service does not use more than specified memory+swap (in bytes). The Out-Of-Memory killer get triggered in case of tresspassing. The specified value must be greater than pg_mem_limit.
post_provision
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf > head |
scope order |
specific > generic |
A command or script to execute after the resource provision action. Errors do not interrupt the action.
post_start
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf > head |
scope order |
specific > generic |
A command or script to execute after the resource start action. Errors do not interrupt the action.
post_stop
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf > head |
scope order |
specific > generic |
A command or script to execute after the resource stop action. Errors do not interrupt the action.
post_unprovision
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf > head |
scope order |
specific > generic |
A command or script to execute after the resource unprovision action. Errors do not interrupt the action.
pre_provision
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf > head |
scope order |
specific > generic |
A command or script to execute before the resource provision action. Errors do not interrupt the action.
pre_start
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf > head |
scope order |
specific > generic |
A command or script to execute before the resource start action. Errors do not interrupt the action.
pre_stop
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf > head |
scope order |
specific > generic |
A command or script to execute before the resource stop action. Errors do not interrupt the action.
pre_unprovision
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf > head |
scope order |
specific > generic |
A command or script to execute before the resource unprovision action. Errors do not interrupt the action.
provision
scopable |
True |
required |
False |
provisioning |
False |
default |
True |
inheritance |
leaf > head |
scope order |
specific > generic |
candidates |
True | False |
convert |
boolean |
Set to false to skip the resource on provision and unprovision actions. Warning: provisioning implies destructive operations like formating. Unprovisioning does not keep a copy of the service data.
provision_requires
scopable |
True |
required |
False |
provisioning |
False |
default |
|
inheritance |
leaf > head |
scope order |
specific > generic |
A whitespace-separated list of conditions to meet to accept running a 'provision' action. A condition is expressed as <rid>(<state>,...)
. If states are omitted, up,stdby up
is used as the default expected states.
restart
scopable |
True |
required |
False |
provisioning |
False |
default |
0 |
inheritance |
leaf > head |
scope order |
specific > generic |
convert |
integer |
The agent will try to restart a resource <n> times before falling back to the monitor action. A resource restart is triggered if the resource is not disabled and its status is not up, and the node is not frozen, and the service instance is not frozen and its local expect is set to started
. If a resource has a restart set to a value >0, its status is evaluated at the frequency defined by DEFAULT.monitor_schedule instead of the frequency defined by DEFAULT.status_schedule.
retcodes
scopable |
True |
required |
False |
provisioning |
False |
default |
0:up 1:down |
inheritance |
leaf > head |
scope order |
specific > generic |
The whitespace separated list of <retcode>=<status name>
. All undefined retcodes are mapped to the 'warn' status.
secrets_environment
scopable |
True |
required |
False |
provisioning |
False |
default |
[] |
inheritance |
leaf > head |
scope order |
specific > generic |
convert |
shlex |
A whitespace separated list of <var>=<secret name>/<key path>
. A shell expression spliter is applied, so double quotes can be around <secret name>/<key path>
only or whole <var>=<secret name>/<key path>
. Variables are uppercased.
shared
scopable |
True |
required |
False |
provisioning |
False |
default |
False |
inheritance |
leaf > head |
scope order |
specific > generic |
candidates |
True | False |
convert |
boolean |
Set to true
to skip the resource on provision and unprovision actions if the action has already been done by a peer. Shared resources, like vg built on SAN disks must be provisioned once. All resources depending on a shared resource must also be flagged as shared.
standby
scopable |
True |
required |
False |
provisioning |
False |
default |
False |
inheritance |
leaf > head |
scope order |
specific > generic |
candidates |
True | False |
convert |
boolean |
Always start the resource, even on standby instances. The daemon is responsible for starting standby resources. A resource can be set standby on a subset of nodes using keyword scoping.
A typical use-case is sync'ed fs on non-shared disks: the remote fs must be mounted to not overflow the underlying fs.
Warning
Don't set shared resources standby: fs on shared disks for example.
start_requires
scopable |
True |
required |
False |
provisioning |
False |
default |
|
inheritance |
leaf > head |
scope order |
specific > generic |
A whitespace-separated list of conditions to meet to accept running a 'start' action. A condition is expressed as <rid>(<state>,...)
. If states are omitted, up,stdby up
is used as the default expected states.
stop_requires
scopable |
True |
required |
False |
provisioning |
False |
default |
|
inheritance |
leaf > head |
scope order |
specific > generic |
A whitespace-separated list of conditions to meet to accept running a 'stop' action. A condition is expressed as <rid>(<state>,...)
. If states are omitted, up,stdby up
is used as the default expected states.
subset
scopable |
True |
required |
False |
provisioning |
False |
default |
None |
inheritance |
leaf |
scope order |
specific > generic |
Assign the resource to a specific subset.
unprovision
scopable |
True |
required |
False |
provisioning |
False |
default |
True |
inheritance |
leaf > head |
scope order |
specific > generic |
candidates |
True | False |
convert |
boolean |
Set to false to skip the resource on unprovision actions. Warning: Unprovisioning does not keep a copy of the service data.
unprovision_requires
scopable |
True |
required |
False |
provisioning |
False |
default |
|
inheritance |
leaf > head |
scope order |
specific > generic |
A whitespace-separated list of conditions to meet to accept running a 'unprovision' action. A condition is expressed as <rid>(<state>,...)
. If states are omitted, up,stdby up
is used as the default expected states.