systemd is a replacement framework for the SystemV init scripts
to manage services and is used by contemporary Linux distributions.
As of B.08.30, Eloquence on the Linux platform preferably uses
systemd to manage services, where available.
The Linux systemd unit files provide a similar functionality as
the Eloquence SystemV start/stop scripts.
Each service type is defined by a unit file that
describes the service and its dependency to systemd.
The following systemd unit files are available with Eloquence:
-
eloquence83.target
-
The Eloquence target encloses any enabled or running Eloquence
B.08.30 services. The target may be used to start or shut down
all Eloquence B.08.30 services.
-
eloqdb83.service
-
The default Eloquence database instance.
-
eloqdb83@.service
-
Additional Eloquence database instances. The instance name is
specified after the @ sign and implies the database server
configuration file name.
For example, a service name eloqdb83@test.service would use
the eloqdb-test.cfg configuration file.
-
eloqsd83.service
-
The Eloquence eloqsd service
-
dbrepl83.service
-
The default Eloquence database replication instance
-
dbrepl83@.service
-
Additional Eloquence database replication instances. The
instance name is specified after the @ sign and implies
the dbrepl configuration file.
For example, a service name dbrepl83@test.service would use
the configuration file repl-test.cfg.
-
eloqwebd83.service
-
The Eloquence webdlg2 service
The unit file names are versioned to allow coexistence with other
Eloquence releases. Once enabled and started a service name without
a version number may be used as an alias.
The Eloquence services are not enabled by default. The systemctl
enable command is used to enable the services for autostart.
systemctl enable eloqsd83.service eloqdb83.service
The eloqdb83@ and dbrepl83@ instances must be enabled with an
additional instance name. The instance name also defines the name of
the associated configuration file.
systemctl enable eloqdb83@test.service
The eloqdb83@test.service describes an eloqdb instance using
the configuration file eloqdb-test.cfg.
The eloquence83.target may be used to specify any active or
enabled Eloquence service.
# start/stop any configured Eloquence 8.3 services
systemctl start eloquence83.target
systemctl stop eloquence83.target
# list configured Eloquence 8.3 services and status
systemctl list-dependencies eloquence83.target
# list Eloquence 8.3 unit files and status
systemctl list-unit-files "*83*"
The systemctl start command is used to start the enabled Eloquence
services (requires root).
systemctl start eloquence83.target
- or -
systemctl start eloqsd83.service eloqdb83.service
Changing system wide systemd services requires root permissions.
Using sudo (with an appropriate sudoers entry) may be used to
allow users to start/stop Eloquence services without unlimited
root access.
Please notice:
If the eloqdb user does not use a system user (a user id of
typically less then 1000) the systemd logind daemon may remove IPC
resources such as semaphores and shared memory while the eloqdb
process is active when the elqodb user logs off.
The preferred configuration is to run eloqdb as a system" user
(useradd --system, a user id less then 1000).
If necessary, the logind config file /etc/systemd/logind.conf
may be changed specifying the option RemoveIPC=no.
$ id eloqdb
uid=1003(eloqdb) gid=1001(eloqdb) groups=1001(eloqdb)
/etc/systemd/logind.conf
...
[Login]
RemoveIPC=no
The id command may be used to obtain eloqdb user id and group.
As the eloqdb user id is not a system user the logind RemoveIPC=no
option is specified.
|