In een Linux systeem spelen diensten (ook wel daemons genoemd) een cruciale rol bij het afhandelen van verschillende taken zoals webhosting, databasebeheer en netwerken. Echter, diensten kunnen soms crashen of stoppen door fouten, hoge resourcegebruik of onverwachte systeemstoringen.
Om downtime te voorkomen en een soepele werking te garanderen, kunnen systeembeheerders diensten configureren om automatisch opnieuw op te starten wanneer ze falen, wat vooral nuttig is voor webservers (Apache, Nginx), databases (MySQL, PostgreSQL), of andere kritieke applicaties die te allen tijde beschikbaar moeten zijn.
In deze gids leggen we uit hoe je systemd kunt gebruiken om een Linux-dienst te configureren die automatisch opnieuw opstart als deze stopt.
Waarom een Dienst Automatisch Herstarten?
Er zijn verschillende redenen waarom je een dienst in Linux automatisch zou willen herstarten:
- Minimaliseer downtime: Als een dienst onverwacht stopt, zorgen automatische herstarts ervoor dat gebruikers minimale onderbrekingen ervaren.
- Verbeter betrouwbaarheid: Diensten zoals webservers, databases en achtergrondprocessen moeten altijd draaien.
- Verminder handmatig werk: Zonder automatisering zou je diensten vaak moeten controleren en handmatig opnieuw moeten opstarten als ze falen.
- Behandel onverwachte storingen: Als een service crasht als gevolg van softwarebugs, resource limieten of systeemfouten, kan systemd deze herstarten zonder tussenkomst van de beheerder.
Laten we nu de stappen doornemen om automatische herstarts in te stellen met behulp van systemd.
Stap 1: Identificeer de Service Die U Wilt Herstarten
Voordat u wijzigingen aanbrengt, moet u de exacte naam van de service die u wilt configureren weten door alle actieve services op te sommen.
systemctl list-units --type=service --state=running

Als u de servicenaam al weet, kunt u de status controleren.
systemctl status apache2

Vervang apache2
door de daadwerkelijke servicenaam die u wilt beheren.
Stap 2: Bewerk de Serviceconfiguratie
Systemd stelt u in staat om de servicegedrag aan te passen met behulp van aangepaste configuratiebestanden. In plaats van systeembrede instellingen aan te passen (die tijdens updates overschreven kunnen worden), zullen we systemctl edit
gebruiken om een overridebestand aan te maken.
Voer de volgende opdracht uit:
systemctl edit apache2
Dit opent een leeg bestand in uw standaardteksteditor.
Als het bestand niet leeg is, ziet u bestaande instellingen die u kunt aanpassen. Anders moet u de benodigde herstartconfiguratie toevoegen.

Stap 3: Voeg Systemd Herstartconfiguratie Toe
In de editor voegt u de volgende regels toe.
[Service] Restart=always RestartSec=5s
Uitleg van deze instellingen:
Restart=always
– Zorgt ervoor dat de service altijd opnieuw wordt opgestart wanneer deze stopt, ongeacht de reden.RestartSec=5s
– Vertelt systemd om 5 seconden te wachten voordat de service opnieuw wordt opgestart, wat herhaalde opstartlussen bij herhaalde storingen kan voorkomen.
Zodra toegevoegd, sla het bestand op en sluit het.

Na wijzigingen aan een systemd-service te hebben aangebracht, moet je systemd herladen en de service opnieuw starten om ervoor te zorgen dat de nieuwe configuratie wordt toegepast:
sudo systemctl daemon-reload sudo systemctl restart apache2
Om te bevestigen dat de service nu is ingesteld om automatisch opnieuw te starten, voer je uit:
sudo systemctl show apache2 | grep Restart
Als alles correct is geconfigureerd, zou je het volgende moeten zien:
Restart=always
Stap 4: Test het automatisch opnieuw opstarten in Linux
Om ervoor te zorgen dat de configuratie werkt, kun je de service handmatig stoppen en controleren of deze opnieuw wordt opgestart.
sudo systemctl stop apache2
Wacht 5 seconden en controleer vervolgens de status.
sudo systemctl status apache2
Als de service opnieuw actief is, werkt het automatisch opnieuw opstarten!
Extra herstartopties
Afhankelijk van je behoeften biedt systemd verschillende herstartbeleidsregels:
Restart=always
– De service wordt altijd opnieuw opgestart, zelfs als deze handmatig is gestopt.Restart=on-failure
– Start alleen opnieuw op als de service afsluit met een fout (maar niet als deze handmatig is gestopt).Restart=on-abnormal
– Start de service opnieuw op als deze crasht door een signaal (zoals een segmentatiefout).Restart=on-watchdog
– Start de service opnieuw op als deze time-out terwijl deze wordt uitgevoerd.
Je kunt Restart=always
vervangen door een van deze opties op basis van je behoeften.
Hoe service logs controleren op problemen
Als een service blijft falen, is het een goed idee om logs te controleren met het journalctl commando, die logs voor de service van de laatste 10 minuten zal tonen.
journalctl -u apache2 --since "10 minutes ago"
Voor een realtime log stream, gebruik:
journalctl -u apache2 -f
Conclusie
Door automatische herstarts in te stellen voor falende services, wordt ervoor gezorgd dat kritieke toepassingen blijven draaien zonder handmatige interventie. Door gebruik te maken van systemd’s herstartopties, kun je de downtime minimaliseren, de systeemstabiliteit verbeteren en de noodzaak voor handmatige probleemoplossing verminderen.
Source:
https://www.tecmint.com/automatically-restart-service-linux/