Custom systemd Unit and Unit File: Difference between revisions
Jump to navigation
Jump to search
Line 18: | Line 18: | ||
==Process Started and Stopped by Auxiliary Scripts== | ==Process Started and Stopped by Auxiliary Scripts== | ||
<syntaxhighlight lang='bash'> | |||
< | |||
[Unit] | [Unit] | ||
Description= | Description=Minecraft service | ||
After=network.target | After=network.target | ||
Line 32: | Line 31: | ||
[Install] | [Install] | ||
WantedBy=multi-user.target | WantedBy=multi-user.target | ||
</ | </syntaxhighlight> | ||
Also see: {{Internal|Systemd_Concepts#Type.3Doneshot|systemd Concepts | <tt>oneshot</tt>}} | |||
==Daemon Process that Forks and Creates Its Own PID File== | ==Daemon Process that Forks and Creates Its Own PID File== |
Revision as of 22:35, 19 August 2023
Internal
Overview
This article describes the procedure to configure an arbitrary service minecraft
to be managed by systemd
. It includes the creation of corresponding unit file and systemd
configuration to start and stop the service automatically at boot, respectively shutdown.
Create the Unit File
Create the /etc/systemd/system/minecraft.service
unit file. As root:
touch /etc/systemd/system/minecraft.service
chmod 644 /etc/systemd/system/minecraft.service
For more details on the location of the unit files, see:
Configure the Unit File
Process Started and Stopped by Auxiliary Scripts
[Unit]
Description=Minecraft service
After=network.target
[Service]
Type=oneshot
ExecStart=/opt/myservice/bin/myservice start
ExecStop=/opt/myservice/bin/myservice stop
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Also see:
Daemon Process that Forks and Creates Its Own PID File
[Unit] Description=MyService After=network.target [Service] ExecStart=/opt/myservice/bin/myservice Type=forking PIDFile=/var/run/myservice.pid [Install] WantedBy=multi-user.target
For more details on the content of the unit files, see systemd Concepts - Unit File Structure.
Notify systemd of the existence of the new unit file
systemctl daemon-reload
Enable at Boot
systemctl enable myservice.service
Exercise the Service
systemctl start myservice systemctl status hello systemctl restart hello systemctl stop hello