Systemd service template

Using the dispatcher systemd template allows you to run commands to stop and start the service using systemctl in Unix-like systems.

Systemd templates for the fastcgidispatch and httpdispatch dispatcher are provided in the FGLASDIR/systemd directory.

Warning:

The systemd feature is available on Linux® only.

The systemd files (.service ) contain the service configuration options that allow you to control the dispatcher service via UNIX® systemctl commands. The basic commands to use the service are provided; you may want to adapt the template to suit your needs. For more information on working with systemd, see the systemd documentation.

An example of the systemd template for fastcgidispatch, fastcgidispatch.service, is shown in the sample.

# Installed in the global system
#
# /lib/systemd/system/fastcgidispatch.service
# systemctl daemon-reload
# systemctl stop fastcgidispatch.service
# systemctl start fastcgidispatch.service
# systemctl status fastcgidispatch.service
#
# Installed in user space
#
# ~/.config/systemd/user/fastcgidispatch.service
# systemctl --user daemon-reload
# systemctl --user stop fastcgidispatch.service
# systemctl --user start fastcgidispatch.service
# systemctl --user status fastcgidispatch.service

[Unit]
Description=Genero Application Server 3.20.21-202304031114
After=network.target nss-lookup.target
Documentation=https://4js.com/online_documentation/fjs-gas-manual-html/

[Service]
Type=exec
Environment=FGLASDIR=/opt/fourjs/gas
ExecSearchPath=/opt/fourjs/gas/bin
ExecStart=fastcgidispatch -s
ExecStop=/bin/kill -s TERM $MAINPID
# KillMode=process -> only the dispatcher killed, proxies remain but many warnings in logs
#                     sessions remain valid if dispatcher restarts.
# KillMode=mixed -> dispatcher and proxies are killed -> all sessions lost.
KillMode=mixed
Restart=on-abort
RestartSec=15
SuccessExitStatus=SIGTERM 0

# If files are generated in /tmp and external apps expect to have access to it,
# either change PrivateTmp to false, or change the output directory for these files.
PrivateTmp=true

[Install]
WantedBy=multi-user.target
Where:
  • Examples of the systemctl commands you can use to manage the service are included in the comments at the top of the file.
  • The configuration items are in the [Unit], [Service], and [Install] sections.
  • The ExecSearchPath parameter specifies the path to the dispatcher for the service. It affects where systemd looks for the commands specified in ExecStart, ExecStop, and so one. This parameter was introduced in systemd version 250. If your version of systemd is earlier (run systemctl --version), you will need to include the complete path to the dispatcher commands in the Exec* parameters.

Usage

There are different ways of using the template depending on your requirements. You can either set the service as a global service or as a user service. For this example we set the fastcgidispatch service as a global system service:
  • Copy the FGLASDI/systemd/fastcgidispatch.service service file to the /lib/systemd/system directory.
  • Reload the systemd configuration:
    $ systemctl daemon-reload
  • Now you should be able to start and stop the dispatcher service.
    $ systemctl start fastcgidispatch.service
    $ systemctl stop fastcgidispatch.service
  • To configure the service to start automatically on boot, you need to enable it:
    $ systemctl enable fastcgidispatch.service
  • To check the service logs, run:
    $ journalctl -u fastcgidispatch.service