System Launch and Monitor (SLM)

The System Launch and Monitor (SLM) process is used to modify the launch sequence of applications and services without rebuilding the target image (or process management).

Syntax:

slm configuration_file

Runs on:

QNX Neutrino

Description:

System Launch and Monitor (SLM) is started early in the boot sequence to launch complex applications consisting of multiple processes that must be started in a specific order.

SLM is a utility controlled by a configuration file. The configuration file specifies any interprocess dependencies, the processes to run, and the process properties. For example, suppose a multimedia application needs the services of the audio subsystem and the database server, which in turn requires the Persistent Publish/Subscribe (PPS) service. When SLM learns of these one-way dependencies when reading the configuration file, the service internally constructs a directed acyclic graph (DAG). The DAG represents the workflow of the underlying processes and is sorted to produce a partial ordering for scheduling the processes so that all control-flow dependencies are respected. In this example, SLM would first verify that PPS is running before starting the database server, and then check that the database server is running before starting the multimedia application.

For more information about how to use SLM, see slm.

The SLM service starts processes required for your system. It automates process management by running early in the boot sequence and launching complex applications consisting of many processes that must start in a specific order.

SLM configuration files

SLM uses XML configuration files to determine the appropriate order for starting processes. These files list all the processes for SLM to manage, any dependencies between the processes, the commands for launching the processes, and other properties. The files are located in these subdirectories:

$QNX_DEPLOYMENT_WORKSPACE/target/product/ADAS/

The files are:

slm-config-all.xml
Configures services common to all hardware platforms. Located in: etc/.
slm-config-modules.xml
An example of how to add new modules. Located in: etc/. This file is included in slm-config-all.xml.
slm-config-platform.xml
Platform-specific services, such as board-specific drivers. Located in: boards/platform.variant/etc/

Example SLM configuration

Below is a sectionis an example for the SLM configuration file slm-config-all.xml to define support for the PPS service:

<!-- pps starts in the IFS, this just blocks until /pps is available -->
<SLM:component name="pps">
    <SLM:command launch="builtin">no_op</SLM:command>
    <SLM:args></SLM:args>
    <SLM:waitfor wait="pathname">/pps</SLM:waitfor>
    <SLM:stop stop="signal">SIGTERM</SLM:stop>
</SLM:component>