Introduction
- A startup and shutdown configuration can be used for Unix systems that is executed by
systemd
running for theroot
account. - There are a number of ways how of writing
systemd
service files - however, the sections below explain the best practices for use ofsystemd
with JS7 products.
Controller
Location of Service File
The following service file will be created when extracting the Controller instance from the downloaded archive:
controller/bin/controller.service-example
You can rename the file to controller.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
When using JS7 - Automated Installation and Update then the systemd service file can be automatically created.
Controller Service File
The example file for the Controller daemon includes a number of placeholders that can be replaced as follows:
Explanations:
Environment="JAVA_HOME=..."
Optionally theJAVA_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 thatsystemd
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.
- the Instance Start Script .
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=...
Thecontroller.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 thelogs
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 thejs7
user account. If theJS7_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
The following file will be created when extracting the Agent from the downloaded archive:
agent/bin/agent.service-example
You can rename the file to agent.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
When using JS7 - Automated Installation and Update then the systemd service file can be automatically created.
Agent Service File
The example file for the Agent daemon includes a number of placeholders that can be replaced as follows:
Explanations:
Environment="JAVA_HOME=..."
Optionally theJAVA_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 thatsystemd
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.
- the Instance Start Script .
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=...
Theagent.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 thelogs
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 thejs7
user account. If theJS7_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
- The JOC Cockpit will start for the user account that is specified during installation. The JOC Cockpit
jetty.sh
start script will switch to this account independently of the fact that the start script is executed e.g. bysystemd
using theroot
account. - A sample service file for use with
systemd
is to be found at./bin/joc.service-example
.
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
When using JS7 - Automated Installation and Update then the systemd service file can be automatically created.
JOC Cockpit Service File
The example file for the JOC Cockpit daemon includes a number of paths that are populated by the installer:
Explanations:
Environment="JAVA_HOME=..."
Optionally theJAVA_HOME
environment variable can be set to specify the location of the JVM. Alternatively this environment variable can be specified with, for example:- the .
/bin/agent_<port>.sh
Start Script of the Agent Instance, - the profile, e.g.
$HOME/.bashrc
, of the user account that the Agent is operated with. Note thatsystemd
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.
- the .
Environment="JAVA_OPTIONS=..."
Optionally set Java options, e.g. to specify the heap size or debugging options, if not not provided by some other location such as/etc/default/joc
.PIDFile=...
Thejoc.pid
PID file includes the process ID that is assigned when starting JOC Cockpit. By default the file is located in the JETTY_BASE directory.ExecStart, ExecStop, ExecReload
The start, stop and restart operations for the Agent are performed by running the JOC Cockpit Start Script.User=js7
The example assumes that the Agent is operated for thejs7
user account. If theJS7_USER
environment variable is set from the Agent's Instance Start Script then the values have to match.
Operation with systemd
How to apply systemd Service Files
The following commands have to be executed after storing a service file to one of the known locations for systemd
service files:
Explanations:
- Ensure that the
controller
service name corresponds to thecontroller.service
service file name. - For unique service names users can rename the service file, for example to
js7_controller.service
. - The command
systemctl daemon-reload
has to be re-executed after any later change to a service file.
How to run systemd Service Files
The following commands can be executed after saving a service file in one of the known locations for systemd
service files:
Explanations:
- Ensure that the
controller
service name corresponds to thecontroller.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.