Back to tools

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.

Browse hosting