Custom systemd Unit and Unit File: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 10: Line 10:
Create the <code>/etc/systemd/system/minecraft.service</code> unit file. As root:
Create the <code>/etc/systemd/system/minecraft.service</code> unit file. As root:
<syntaxhighlight lang='bash'>
<syntaxhighlight lang='bash'>
touch /etc/systemd/system/myservice.service
touch /etc/systemd/system/minecraft.service
chmod 644 /etc/systemd/system/myservice.service
chmod 644 /etc/systemd/system/minecraft.service
</syntaxhighlight>
</syntaxhighlight>
For more details on the location of the unit files, see: {{Internal|Systemd_Concepts#Unit_File_Location|systemd Concepts &#124; Unit File Location}}
For more details on the location of the unit files, see: {{Internal|Systemd_Concepts#Unit_File_Location|systemd Concepts &#124; Unit File Location}}

Revision as of 22:32, 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:

systemd Concepts | Unit File Location

Configure the Unit File

Process Started and Stopped by Auxiliary Scripts

[Unit]
Description=MyService
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

For more details on the content of the unit files, see systemd Concepts - Unit File Structure.

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