App¶
An application launcher is a resource. As such, it supports the standard start, stop and status actions. Application resources are also involved in the push appinfo
action. Application launchers can support the following parameters:
Service action | Launcher parameter |
---|---|
start | start |
stop | stop |
status print status json status | status |
push appinfo | info |
As a resource, an application launcher can be defined with a <svcname>.conf
section. This method permits complex application scheduling, mixing chaining and parallel execution, timeouts setting and scoping.
For simple cases, the agent also supports a SysV-style launcher definitions.
Definition¶
Section Syntax¶
Here is a complete application resource section:
[app#1]
script = weblogic
start = true
stop = true
check = true
info = weblogic.info arg1
disable = false
optional = true
tags = group1
subset = web
# rlimits
limit_as = 1g
limit_cpu = 1-4
limit_core = 1-4
limit_data = 1g
limit_fsize = 5t
limit_memlock = 1k
limit_nofile = 10k
limit_nproc = 10k
limit_rss = 100m
limit_stack = 10m
limit_vmem = 100m
All these parameters support scoping, using the @<nodename>
, @nodes
, @drpnodes
and @encapnodes
suffixes.
Parameter | Type | Role |
---|---|---|
script | string | Full path the the app launcher or basename of a launcher in etc/<svcname>.d/ . |
start | boolean or command | Flag the app launcher for execution with the start parameter on service startup.
If set to a command, it is executed instead of the default <start> start .
Omit the parameter to disable app launcher execution on resource start action. |
stop | boolean or command | Flag the app launcher for execution with the stop parameter on service stop.
If set to a command, it is executed instead of the default <start> stop .
Omit the parameter to disable app launcher execution on resource stop action. |
status | boolean or command | Flag the app launcher for execution with the status parameter on service status evaluation.
If set to a command, it is executed instead of the default <start> status .
Omit the parameter to disable app launcher execution on resource status action. |
info | boolean or command | Flag the app launcher for execution with the info parameter on service push appinfo.
If set to a command, it is executed instead of the default <start> info .
Omit the parameter to disable app launcher execution on resource appinfo action. |
subset | string | Add the resource to the specified app subset. In the given example, the full subset name is subset#app:web |
limit_* | string | Refer to the OS man limits.conf |
Subsets¶
- Actions on subsets are chained in alphanumeric subset name order on start, status and info.
- Actions on subsets are chained in reverse alphanumeric subset name order on stop.
- The implicit subset name is
subset#app
. - Scripts in a subset are executed either in parallel or serially (default).
Here is a subset section:
[subset#app:web]
parallel = true
Application can be started and stopped without touching the other service resources with:
om myservice stop --rid app
om myservice start --rid app
The OPENSVC_SVCNAME
variable is set by OpenSVC to the service name, so that integrators can write reusable launcher scripts. Examples of this variable usage below.
Environment variable named OPENSVC_IP<n>
are also set to let app launchers bind the appropriate service ips, for services with instances on different subnets. For example, the service might have a different ip address when starting on the disaster recovery site.
Launcher Scripts Development Guidelines¶
A single-launcher script should support the following values for argument 1:
Arg1 | Description |
---|---|
start | Triggers the application startup. The return code must be 0 for a succesful startup, and not 0 otherwise. |
stop | Triggers the application shutdown. The return code must be 0 for a succesful shutdown, and not 0 otherwise. |
status | Return 0 if the application is up, or any other value if the application is not up. In this later case, the agent will report a warn status for the resource. |
info | Emits on stdout key: value pairs. These pairs will be reported to the collector for storage, and
historization if the value is numeric. |