Versions Compared

Key

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

Table of Contents

Introduction

  • For Unix systems a startup and shutdown configuration can be used that is executed by systemd running for the root account.
  • There are a number of ways how to write systemd service files, however, the below chapters explain best practices for use of systemd  with JS7 components.

Controller

Location of Service File

When extracting the Controller instance from the downloaded archive then this will create the following file:

...

  • /usr/lib/systemd/system
  • /etc/systemd/system

Controller Service File

The example file for the Controller daemon includes a number of placeholders that can be replaced like this:

...

  • 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. Consider that systemd will not run the user accounts' profile when switching to the user account.
    • If a JDK is used then specify the folder to which the JDK is installed.
    • If a JRE is used then specify the folder to which the JRE is installed.
  • 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 is located in the logs directory.
  • ExecStart, ExecStop, ExecReload The operation to start, to stop and to restart the Controller is performed by running the Controller's Instance Start Script.
  • User=js7 The example assumes that the Controller is operated for 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.

Agent

Location of Service File

When extracting the Agent from the downloaded archive then this will create the following file:

...

  • /usr/lib/systemd/system
  • /etc/systemd/system

Agent Service File

The example file for the Agent daemon includes a number of placeholders that can be replaced like this:

...

  • 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. Consider that systemd will not run the user accounts' profile when switching to the user account.
    • If a JDK is used then specify the folder to which the JDK is installed.
    • If a JRE is used then specify the folder to which the JRE is installed.
  • 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 operation to start, to stop and to restart the Agent is 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.

JOC Cockpit

Location of Service File

  • The JOC Cockpit will start for the user account that is specified during installation. The JOC Cockpit start script jetty.sh will switch to this account independently from the fact that the start script is executed e.g.  by systemd using the root account.
  • For use with systemd find a sample service file from ./bin/joc.service-example file.

You can rename the file to joc.service (or to any other name with the extension .service) and move the file to one of the known locations for systemd unit files such as

  • /usr/lib/systemd/system
  • /etc/systemd/system

JOC Cockpit Service File

The example file for the JOC Cockpit daemon includes a number of paths that are populated by the installer:

...

Code Block
languagebash
titleExample for Controller service fileenabling JS7 components
linenumberstrue
collapsetrue
# make systemd read changes to service files
systemctl daemon-reload

# make systemd create a startup/shutdown configuration
systemctl enable controller
systemctl enable agent
systemctl enable joc

...

Code Block
languagebash
titleExample for Controller service filemanaging JS7 components
linenumberstrue
collapsetrue
# start, stop, restart and get status information of the Controller
systemctl start controller
systemctl stop controller
systemctl restart controller
systemctl status controller

...