Page 1 of 1

Systemd start-script för Jessie

Posted: Tue 09 Aug 2016, 09:57
by BigSwede
Dom flesta Linux-distributioner inkl Raspbian Jessie börjar implementera ett nytt sätt att starta tjänster på.
Man håller på att fasa ut det gamla SystemV init mot SystemD istället. Jag tänker inte ta ställning för eller emot utan här kommer mitt förslag på startscript för att starta SPC Web Gateway på det nya sättet. Kommentarer om dess utformning mottages tacksamt. Detta är mitt första SystemD-försök...

Skapa en script-fil i /etc/systemd/system

Code: Select all

cd /etc/systemd/system
touch spc-web-gateway.service
chmod 664 spc-web-gateway.service
nano spc-web-gateway.service
Scriptet ser ut så här:

Code: Select all

[Unit]
Description=Lundix IT SPC Web Gateway
After=syslog.target network.target

[Service]
Type=simple
ExecStart=/opt/spc-web-gateway/spc-web-gateway
PIDFile=/var/run/spc-web-gateway.pid
Restart=always
RestartSec=10
User=pi

[Install]
WantedBy=multi-user.target
Spara filen.
Uppdatera SystemD genom följande kommando:

Code: Select all

systemctl daemon-reload
Aktivera scriptet med följande kommando:

Code: Select all

systemctl enable spc-web-gateway.service
Nu är scriptet installerat och kommer startas automatiskt vid nästa omstart.
Vill du manuellt starta, stoppa, omstarta eller visa status på tjänsten är det följande kommandon.

Code: Select all

systemctl start spc-web-gateway
systemctl stop spc-web-gateway
systemctl restart spc-web-gateway
systemctl status spc-web-gateway
Notera att man inte behöver skriva ut .service efter namnet om man inte vill.
För att ta bort det gamla SystemV scriptet som installeras automatiskt kör ni följande kommandot.

Code: Select all

update-rc.d spc-web-gateway remove
rm /etc/init.d/spc-web-gateway
Den andra raden är inte nödvändig då scriptet inte körs om det bara ligger i /etc/init.d men det gör å andra sidan ingen nytta där heller :)
Det går givetvis att välja andra namn på script-filen om man vill samt modifiera en massa parametrar men detta borde funka för dom flesta.