Systemd Service File Generator
Fill in your executable, working directory, restart policy and user — get a ready-to-install .service unit (and an optional companion .timer), with every generated line explained.
Presets
Start from a common workload
Loads sane defaults for the fields below. Everything stays editable afterward.
[Unit]
Description & ordering
The [Unit] section is metadata and ordering — it tells systemd what this service is and what it should come after, but doesn't start anything itself.
Units this should start after, space-separated.
[Service] — process
What to run
Absolute path required.
Defaults to User when left blank.
[Service] — environment
Environment variables
Each row becomes its own Environment= line. Use EnvironmentFile instead for secrets you don't want sitting in the unit file itself.
Optional, absolute path.
[Install]
When it auto-starts
The [Install] section only matters to systemctl enable — it says which target's boot sequence should pull this service in.
[Service] — reliability
Restart policy
Not an on/off switch — pick the variant that matches how this process is supposed to fail.
Restarts on a crash, non-zero exit, or timeout — but a deliberate "systemctl stop" or a clean exit(0) is left alone. The usual choice for a long-running app or game server: it recovers from crashes without fighting an admin who stopped it on purpose.
Seconds to wait before restarting.
Optional
Caps how much RAM and CPU this one service may use. Leave this off unless you actually need a hard ceiling.
Validation
Common mistakes
Looks clean — no issues detected.
Optional companion unit
Runs this service on a schedule instead of (or in addition to) at boot — the systemd equivalent of a cron job, tied to Type=oneshot workloads. Prefer plain cron for something simple? A separate Cronjob Generator tool covers that instead — OnCalendar= is a different syntax from cron and isn't a drop-in replacement.
Output
Generated unit file(s)
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
Install commands
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
Running your own game server?
Wespner game servers with DDoS protection, NVMe drives and activation within minutes.