systemctl är det huvudsakliga verktyget för att hantera tjänster på de flesta moderna Linux VPS-distributioner. Det kontrollerar tjänster som hanteras av systemd, inklusive webbservrar, databaser, bots, spelserver-demoner, övervakningsverktyg och anpassade tjänster du skapar själv.
I exemplen nedan, ersätt nginx med den tjänst du hanterar. Vanliga tjänstenamn inkluderar nginx, apache2, mariadb, mysql, docker, sshd, och anpassade namn som arkserver eller discordbot.
Kontrollera en tjänst
Använd status innan du startar om en tjänst. Det visar om tjänsten körs, om den är aktiverad vid start, och senaste felutdata.
sudo systemctl status nginx
Skärmdumpen nedan använder SSH-tjänsten som exempel; samma utdataformat gäller för andra systemd-tjänster.

Om utdata säger failed, läs fellinjerna innan du startar om det upprepade gånger.
Du kan också visa loggar med journalctl:
sudo journalctl -u nginx --since "30 minutes ago"
Följ live-loggar medan du startar om eller testar tjänsten:
sudo journalctl -u nginx -f
Starta, stoppa, starta om och ladda om
| Kommando | Vad det gör |
|---|---|
sudo systemctl start nginx | Startar en stoppad tjänst. |
sudo systemctl stop nginx | Stoppar en körande tjänst. |
sudo systemctl restart nginx | Stoppar och startar tjänsten igen. |
sudo systemctl reload nginx | Laddar om konfigurationen utan en fullständig omstart, om tjänsten stödjer omladdningar. |
sudo systemctl reload-or-restart nginx | Laddar om om möjligt, annars startar om. |
Använd reload när du bara ändrat en konfigurationsfil och tjänsten stödjer det. Använd restart när applikationen behöver en fullständig stopp/start för att ta upp ändringar.
Aktivera eller inaktivera start vid uppstart
Att starta en tjänst nu och aktivera den vid uppstart är olika åtgärder. Om du vill att en tjänst ska återkomma efter en VPS-omstart, aktivera den.
sudo systemctl enable nginx sudo systemctl start nginx
För att aktivera och starta den med ett kommando:
sudo systemctl enable --now nginx
För att stoppa den från att starta automatiskt vid uppstart:
sudo systemctl disable nginx
Starta om flera tjänster
Du kan ange mer än ett tjänstenamn till många systemctl-kommandon:
sudo systemctl restart nginx php8.2-fpm mariadb
Detta är användbart efter att ha ändrat en stack där flera tjänster är beroende av varandra, såsom en webbserver, PHP-FPM och databas.
Använda wildcards
systemctl kan matcha tjänstenamn med wildcards. Detta är användbart, men använd det försiktigt eftersom det kan påverka fler tjänster än du avsåg.
Till exempel, detta visar alla matchande PHP-FPM-tjänster:
systemctl list-units 'php*-fpm.service'
Efter att ha kontrollerat matchningarna kan du starta om matchande tjänster:
sudo systemctl restart 'php*-fpm.service'
Lista alltid matchningarna först innan du använder ett wildcard med restart, stop, eller disable.
Skapa en anpassad tjänst
Du kan skapa en anpassad systemd-tjänst för en spelserver, bot eller skript så att den startar vid uppstart och kan hanteras med systemctl.
Skapa en enhetsfil i /etc/systemd/system/:
sudo nano /etc/systemd/system/myserver.service
En enkel tjänstfil ser ut så här:
[Unit] Description=My custom server After=network.target [Service] Type=simple User=myuser WorkingDirectory=/home/myuser/myserver ExecStart=/home/myuser/myserver/start.sh Restart=on-failure RestartSec=10 [Install] WantedBy=multi-user.target
Efter att ha skapat eller ändrat en tjänstfil, ladda om systemd så att den ser den nya enheten:
sudo systemctl daemon-reload
Aktivera och starta den sedan:
sudo systemctl enable --now myserver
Kontrollera den med:
sudo systemctl status myserver sudo journalctl -u myserver -f
Om tjänsten misslyckas, kontrollera sökvägen i ExecStart, User, filbehörigheter, och om startskriptet körs manuellt innan du försöker köra det genom systemd.
