Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • A startup and shutdown configuration can be used for Unix systems that is executed by systemd running for the root account.
  • There are a number of ways how of writing systemd service files - however, the sections below explain the best practices for use of systemd  with JS7 componentsproducts.

Controller

Location of Service File

...

  • Environment="JAVA_HOME=..." Optionally the JAVA_HOME environment variable can be set to specify the location of the JVM. Alternatively this environment variable can be specified with
    • the Instance Start Script ./bin/controller_instance.sh of the Controller,
    • the profile, e.g. $HOME/.bashrc, of the user account that the Controller is operated for. Note that systemd will not run the user accounts' profile when switching to the user account.
    • If a JDK is used then specify the folder in which the JDK is installed.
    • If a JRE is used then specify the folder in which the JRE is installed.
  • Environment="JAVA_OPTIONS=..." Optionally set Java options, e.g. specify the heap size or debugging options, if not provided by the Controller's ./bin/controller_instance.sh Instance Start Script.
  • PIDFile=... The controller.pid PID file includes the process ID that is assigned when starting the Controller. If not otherwise specified by the Instance Start Script then the file will be located in the logs directory.
  • ExecStart, ExecStop, ExecReload The start, stop and restart operations for the Controller are performed by running the Controller's Instance Start Script.
    • When stopping the Controller then this is considered normal termination and no fail-over occurs in a Controller Cluster.
    • Users who wish to perform fail-over in a Controller Cluster on stop of a Controller instance should add the option: controller_instance.sh stop --fail-over. For details see JS7 - Controller - Command Line Operation.
  • User=js7 The example assumes that the Controller is operated with the js7 user account. If the JS7_USER environment variable is set from the Controller's Instance Start Script then the values have to match.
  • TimeoutStopSec: The number of seconds that systemd will wait for the Controller to stop. Consider that timeouts optionally specified on Controller start are counted towards the systemd timeout. Users must ensure that the Controller is terminated when the systemd timeout is exceeded. For details see JS7 - Controller - Command Line Operation.

Agent

Location of Service File

...

  • Environment="JAVA_HOME=..." Optionally the JAVA_HOME environment variable can be set to specify the location of the JVM. Alternatively this environment variable can be specified e.g. with
    • the Instance Start Script ./bin/agent_<port>.sh of the Agent,
    • the profile, e.g. $HOME/.bashrc, of the user account that the Agent is operated for. Note that systemd will not run the user accounts' profile when switching to the user account.
    • If a JDK is used then specify the folder in which the JDK is installed.
    • If a JRE is used then specify the folder in which the JRE is installed.
  • Environment="JAVA_OPTIONS=..." Optionally set Java options, e.g. to specify the heap size or debugging options, if not provided by the Agent's ./bin/agent_<port>.sh Instance Start Script.
  • PIDFile=... The agent.pid PID file includes the process ID that is assigned when starting the Agent. if not otherwise specified by the Instance Start Script then the file is located in the logs directory.
  • ExecStart, ExecStop, ExecReload The start, stop and restart operations for the Agent are performed by running the Agent's Instance Start Script.
  • User=js7 The example assumes that the Agent is operated for the js7 user account. If the JS7_USER environment variable is set from the Agent's Instance Start Script then the values have to match.
  • TimeoutStopSec: The number of seconds that systemd will wait for the Agent to stop. Consider that timeouts optionally specified on Agent start are counted towards the systemd timeout. Users must ensure that the Agent is terminated when the systemd timeout is exceeded. For details see JS7 - Agent Command Line Operation.

JOC Cockpit

Location of Service File

...

  • Ensure that the controller service name corresponds to the controller.service. service file name.
  • For unique service names users can rename the service file, for example to js7_controller.service.
  • The above examples apply similarly to the Agent and JOC Cockpit.

Resources