Terug naar tools

Systemd Service-bestandgenerator

Vul je executable, werkmap, herstartbeleid en gebruiker in — krijg een kant-en-klaar te installeren .service-unit (en een optionele bijbehorende .timer), met elke gegenereerde regel uitgelegd.

Presets

Begin met een veelgebruikte workload

Laadt verstandige standaardwaarden voor de velden hieronder. Alles blijft daarna bewerkbaar.

[Unit]

Beschrijving & volgorde

De sectie [Unit] bevat metadata en volgorde — het vertelt systemd wat deze service is en waarna hij moet komen, maar start zelf niets.

Units waarna dit moet starten, gescheiden door spaties.

[Service] — proces

Wat uit te voeren

Absoluut pad vereist.

Standaard gelijk aan User indien leeg gelaten.

[Service] — omgeving

Omgevingsvariabelen

Elke rij wordt zijn eigen Environment=-regel. Gebruik EnvironmentFile voor geheimen die je niet in het unitbestand zelf wilt hebben staan.

Optioneel, absoluut pad.

[Install]

Wanneer het automatisch start

De sectie [Install] is alleen relevant voor systemctl enable — hij bepaalt welke boot-sequence van een target deze service moet meenemen.

[Service] — betrouwbaarheid

Herstartbeleid

Geen aan/uit-schakelaar — kies de variant die past bij hoe dit proces hoort te falen.

Herstart bij een crash, niet-nul exit of timeout — maar een bewuste "systemctl stop" of een nette exit(0) wordt met rust gelaten. De gebruikelijke keuze voor een langlopende app of gameserver: hij herstelt van crashes zonder tegen een beheerder te vechten die hem bewust heeft gestopt.

Aantal seconden wachten voor herstart.

Optioneel

Begrenst hoeveel RAM en CPU deze ene service mag gebruiken. Laat dit uit tenzij je echt een harde limiet nodig hebt.

Validatie

Veelgemaakte fouten

Ziet er schoon uit — geen problemen gevonden.

Optionele bijbehorende unit

Draait deze service op een schema in plaats van (of naast) bij het opstarten — het systemd-equivalent van een cronjob, gekoppeld aan Type=oneshot-workloads. Liever gewone cron voor iets eenvoudigs? Een aparte Cronjob-generator-tool dekt dat — OnCalendar= is een andere syntax dan cron en is geen kant-en-klare vervanging.

Output

Gegenereerde unit-bestand(en)

my-application.service

[Unit]
Description=My application
After=network.target
Wants=network.target

[Service]
Type=simple
ExecStart=/usr/bin/node /opt/wespner-app/server.js
WorkingDirectory=/opt/wespner-app
User=wespner-app
Environment="NODE_ENV=production"
Environment="PORT=3000"
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

Installatiecommando's

sudo cp my-application.service /etc/systemd/system/my-application.service
sudo systemctl daemon-reload
sudo systemctl enable --now my-application.service
journalctl -u my-application.service -f   # follow logs

Beheer je een eigen gameserver?

Wespner-gameservers met DDoS-bescherming, NVMe-schijven en activering binnen enkele minuten.

Bekijk hosting