systemd is framework to manage services in Linux.
It was adopted by all contemporary Linux distributions and replaces
the previous SystemV start/stop scripts to manage background services.
Eloquence on the Linux platform uses systemd to manage its services.
As of version B.08.40 Eloquence no longer supports
SystemV start/stop scripts as an option.
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:
-
eloquence84.target
-
The Eloquence target encloses any enabled or running Eloquence
B.08.40 services. The target may be used to start or shut down
all Eloquence B.08.40 services.
-
eloqdb84.service
-
The default Eloquence database instance.
-
eloqdb84@.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 eloqdb84@test.service would use
the eloqdb-test.cfg configuration file.
-
eloqsd84.service
-
The Eloquence eloqsd service
-
dbrepl84.service
-
The default Eloquence database replication instance
-
dbrepl84@.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 dbrepl84@test.service would use
the configuration file repl-test.cfg.
-
eloqwebd84.service
-
The Eloquence WebDLG2 service
-
eloqld84.service
-
The Eloquence License server
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 eloqsd84 eloqdb84 eloqwebd84
A .service extension is implied for service names and
may typically be omitted.
The eloqdb84@ and dbrepl84@ instances must be enabled with an
additional instance name. The instance name also defines the name of
the associated configuration file.
systemctl enable eloqdb84@test
The eloqdb84@test.service describes an eloqdb instance using
the configuration file eloqdb-test.cfg.
The eloquence84.target may be used to specify any active or
enabled Eloquence service.
# start/stop any configured Eloquence 8.4 services
systemctl start eloquence84.target
systemctl stop eloquence84.target
# list configured Eloquence 8.4 services and status
systemctl list-dependencies eloquence84.target
# list Eloquence 8.4 unit files and status
systemctl list-unit-files "*84*"
The systemctl start command is used to start the enabled Eloquence
services (requires root).
systemctl start eloquence84.target
- or -
systemctl start eloqsd84 eloqdb84 eloqwebd84
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 here. Please be aware this is a system wide
configuration option and not limited to Eloquence. We do not
expect this to be a problem, though.
|