1. Create a Custom systemd Service
Create a Unit file to define a systemd service:
File: /lib/systemd/system/myservice.service
Copy [Unit]
Description = Extension Name Service
After = network.target
[Service]
User = root
WorkingDirectory = /usr/local/bin
# when using config:
# ExecStart=/usr/local/bin/super-tables-linux
# when NOT using config:
# ExecStart=/usr/local/bin/super-tables-linux –port 443 –cert yourdomain.crt –key yourdomain.key
Restart = always
[Install]
WantedBy = multi-user.target
This defines a simple service. The critical part is the ExecStart
directive, which specifies the command that will be run to start the service.
2. Copy the unit file and give it permissions
Copy sudo cp myservice.service /etc/systemd/system/myservice.service
sudo chmod 644 /etc/systemd/system/myservice.service
Start and Enable the Service
1. Once you have a unit file, you are ready to test the service:
Copy sudo systemctl start myservice
2. Check the status of the service:
Copy sudo systemctl status myservice
If the service is running correctly, the output should resemble the following:
Copy ● myservice.service – Example systemd service.
Loaded: loaded (/lib/systemd/system/myservice.service; enabled ; vendor preset: enabled )
Active: active (running) since Tue 2018-05-01 18:17:14 UTC; 4s ago
Main PID: 16266 (bash)
Tasks: 2 Memory: 748.0K CPU: 4ms CGroup: /system.slice/myservice.service
├─16266 /bin/bash /usr/bin/test_service.sh
└─16270 sleep 30
May 01 18:17:14 localhost systemd[1]: Started Example systemd service..
May 01 18:17:14 localhost cat[16269]: Example service started at 2018-05-01 18:17:14
May 01 18:17:14 localhost bash[16266]: Looping…
3. The service can be stopped or restarted using standard `systemd` commands:
Copy sudo systemctl stop myservice
sudo systemctl restart myservice
4. Finally, use the enable command to ensure that the service starts whenever the system boots:
Copy sudo systemctl enable myservice
Created symlink from /etc/systemd/system/multi-user.target.wants/myservice.service
to /lib/systemd/system/myservice.service
Copy ln -s /etc/systemd/system/multi-user.target.wants/myservice.service /lib/systemd/system/myservice.service
5. Reboot your Server(Optional ) and check the status of the service:
Copy sudo systemctl status myservice
You should see that the service logged its start time immediately after booting:
Copy ● myservice.service – Example systemd service.
Loaded: loaded (/usr/lib/systemd/system/myservice.service; enabled ; vendor preset: disabled )
Active: active (running) since Wed 2018-05-02 15:03:07 UTC; 48s ago
Main PID: 2973 (bash)
CGroup: /system.slice/myservice.service
├─2973 /bin/bash /usr/bin/test_service.sh
└─3371 sleep 30
May 02 15:03:07 localhost systemd[1]: Started Example systemd service..
May 02 15:03:07 localhost systemd[1]: Starting Example systemd service….
May 02 15:03:07 localhost bash[2973]: Looping…
May 02 15:03:37 localhost bash[2973]: Looping…
Last updated 2 months ago