How to create a new service with systemd
Creating a program encapsulating script
Deluged does not support stopping or stimulus parameters, we need to create a script that will do that. We can store the script in
/ usr / local / binsudo cat> /usr/local/bin/deluge.shThen paste the following code:
#! / bin / bash
# /usr/local/bin/deluge.sh
#
function d_start ( )
{
echo "Deluge: starting service"
deluged --pidfile = / tmp / deluge.pid
sleep 5
echo "PID is $ (cat /tmp/deluge.pid) "
}
function d_stop ( )
{
echo "Deluge: stopping Service (PID = $ (cat /tmp/deluge.pid) )"
kill $ ( cat / tmp / deluge.pid )
rm / tmp / deluge.pid
}
function d_status ( )
{
ps -ef | grep deluged | grep -v grep
echo "PID indicate indication file $ (cat /tmp/deluge.pid 2> / dev / null) "
}
# Some Things That run always
touch / var / lock / deluge
# Management instructions of the service
box "$ 1" in
start )
d_start
;;
Stop )
d_stop
;;
Reload )
d_stop
sleep 1
d_start
;;
Status )
d_status
;;
* )
Echo "Usage: $ 0 {start | stop | reload | status}"
exit 1
;;
esac
exit 0
Create the service file
In Systemd, services are defined in files tickets · located in / etc / systemd / system / .
Create a service package for our program:
Create a service package for our program:
sudo cat> /etc/systemd/system/deluge.serviceThen paste the following code:
[Unit] Description = Deluge daemon After network.target = auditd.service [Service] Type = forking ExecStart = / usr / local / bin / start deluge.sh ExecStop = / usr / local / bin / stop deluge.sh ExecReload = / usr / local / bin / reload deluge.sh [Install] WantedBy = multi-user.target
Service Installation
We must now reload the list of services:
sudo systemctl daemon reloadThen activate the launch of the service at boot:
sudo systemctl enable deluge
Key services management commands
For reference, the following commands to manage the service:
In our example,
<service> == delugesystemctl sudo
| order | Description |
|---|---|
| start | Start Service |
| stop | Stop Service |
| status | Service Status |
| is-enabled | Whether the service is activated at boot |
| enable | Active start the service |
| disable | Disables the startup service |
Conclusion
Please note, services are launched by
So, it remains only to test that everything is working by running the service:root , so if you have already configured the program with another user, it will:-
either copy the configuration to
root, -
or point the service to the proper configuration (for
delugedthere is an option-config)
sudo systemctl start delugeIf everything can restart the machine to check that the service starts automatically:
sudo reboot
Nenhum comentário:
Postar um comentário