Systemd
Jump to navigation
Jump to search
Creating service in systemd (RHEL7 and up)
NOTES:
systemctl list-units | grep -o '.*\.mount'
DiagGuiServer example
Create file /usr/lib/systemd/system/DiagGuiServer.service with following contents:
[Unit] Description=DiagGuiServer #After=network.target #Requires=autofs.service #Requires=nfs-utils.service nfs-lock.service autofs.service #Requires=autofs.service #After=network.target apps.mount home.mount usr-clas12.mount usr-local.mount #After=-.mount #RequiresMountsFor=/usr/clas12/release/1.4.0/coda/Linux_x86_64/bin #Wants=remote-fs.target #After=remote-fs.target #ConditionPathExists=/usr/clas12/release/1.4.0/coda/Linux_x86_64/bin
[Service] Type=simple User=clasrun Group=onliners ExecStart=/usr/clas12/release/1.4.0/coda/Linux_x86_64/bin/DiagGuiServer init Restart=on-failure RestartSec=10
[Install] WantedBy=multi-user.target
NOTE: various commented out settings in [Unit] section were tried to make sure DiagGuiServer service run after everything else is ready (in particular automounts), but nothing really worked; solution was to allow restart on failure in section [Service], so after a couple of failures service DiagGuiServer finally starts.
Create directory /etc/systemd/system/DiagGuiServer.service.d/
Create file /etc/systemd/system/DiagGuiServer.service.d/override.conf with following contents:
[Service] Environment="LD_LIBRARY_PATH=/apps/gcc/8.3.0/lib:/apps/gcc/8.3.0/lib64:/usr/lib:/usr/local/lib:/usr/local/activemq/lib:/usr/clas12/release/1.4.0/coda/Linux_x86_64/lib:/usr/clas12/release/1.4.0/clon/Linux_x86_64/lib:/usr/clas12/release/1.4.0/clon/lib" Environment="IPC_HOST=clon00" Environment="MYSQL_HOST=clondb1" Environment="EXPID=clasrun" Environment="CLON_PARMS=/usr/clas12/release/1.4.0/parms"
Following commands can be used to control service:
systemctl start DiagGuiServer systemctl stop DiagGuiServer systemctl status DiagGuiServer
To start service at boot time, execute command:
systemctl enable DiagGuiServer
following message should come up on screen:
Created symlink from /etc/systemd/system/default.target.wants/DiagGuiServer.service to /usr/lib/systemd/system/DiagGuiServer.service.