Difference between revisions of "Linux: SystemD"

From RHS Wiki
Jump to navigation Jump to search
Line 23: Line 23:
 
  if $programname == '<your program identifier>' then /path/to/log/file.log
 
  if $programname == '<your program identifier>' then /path/to/log/file.log
 
  if $programname == '<your program identifier>' then ~
 
  if $programname == '<your program identifier>' then ~
 +
 +
== /etc/systemd/system/example.service ==
 +
<nowiki>[Unit]
 +
Description=Tenkaichi Vegeta-server (Tentacle)
 +
After=network.target
 +
 +
[Service]
 +
User=tenkaichi
 +
Group=tenkaichi
 +
EnvironmentFile=/tenkaichi/vegeta-server/cfg/environment.cfg
 +
StandardOutput=syslog
 +
StandardError=syslog
 +
SyslogIdentifier=Vegeta-Tentacle
 +
Restart=always
 +
 +
ExecStart=/usr/local/bin/tentacle_server -o -a ${SERVER_IP} -p ${PORT} -s ${INPUT_DIR} -v -m ${MAX_SIZE} \
 +
  -e ${SSL_CERT} -k ${SSL_CERTKEY}
 +
 +
[Install]
 +
WantedBy=multi-user.target
 +
</nowiki>

Revision as of 14:25, 10 May 2018

  1. List all running services
sytemctl
  1. Start/stop or enable/disable services
systemctl start foo.service
systemctl stop foo.service
systemctl restart foo.service
systemctl status foo.service
systemctl enable foo.service
systemctl disable foo.service
  1. Check if service is enabled
systemctl is-enabled foo.service; echo $?

Source: Useful SystemD Commands

Log to syslog

Use the following properties in your systemd service unit file:

StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=<your program identifier> # without any quote

Then, assuming your distribution is using rsyslog to manage syslogs, create a file in /etc/rsyslog.d/<new_file>.conf with the following content:

if $programname == '<your program identifier>' then /path/to/log/file.log
if $programname == '<your program identifier>' then ~

/etc/systemd/system/example.service

[Unit]
Description=Tenkaichi Vegeta-server (Tentacle)
After=network.target

[Service]
User=tenkaichi
Group=tenkaichi
EnvironmentFile=/tenkaichi/vegeta-server/cfg/environment.cfg
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=Vegeta-Tentacle
Restart=always

ExecStart=/usr/local/bin/tentacle_server -o -a ${SERVER_IP} -p ${PORT} -s ${INPUT_DIR} -v -m ${MAX_SIZE} \
  -e ${SSL_CERT} -k ${SSL_CERTKEY}

[Install]
WantedBy=multi-user.target