# systemd Service Builder

Generate a foreground application service with a non-root user, restart policy, environment file, and installation commands.

## URL

https://ilham.dev/tools/systemd-service-builder/

## What It Does

Generate a system-level Type=simple service for a foreground application running under an existing non-root user. Configure its working directory, literal arguments, optional environment file, restart policy, network ordering, and optional NoNewPrivileges and PrivateTmp settings.

## Features

- Generate a system-level Type=simple unit for a foreground application
- Configure a non-root user and optional group and environment file
- Quote literal arguments without shell execution or variable expansion
- Download the unit and copy installation and log commands
- Add optional network ordering and NoNewPrivileges and PrivateTmp

## Input

Service settings and one literal argument per line form input.

## Output

systemd service unit and shell commands text output.

## Privacy

Processing happens locally in the browser.

No input data is uploaded to ilham.dev.

- Requires login: false
- Requires API key: false
- Stores user data: false


## Examples

- Does this install or start a service on my server?
- Can I paste a shell command into the arguments field?
- Which service types are supported?
- Is an EnvironmentFile the same as sourcing a .env file?


## Limitations

- No installation, execution, or server validation
- Only foreground Type=simple system services with an existing non-root user
- No empty arguments, standalone semicolon arguments, or variable expansion
- Conventional lowercase Linux account names only
- Absolute paths only; backslashes in paths are not supported


## Related Tools

- https://ilham.dev/tools/linux-ops/
- https://ilham.dev/tools/nginx-reverse-proxy-wizard/
- https://ilham.dev/tools/env-diff-checker/


## Questions

### Does this install or start a service on my server?

No. It generates a unit file and commands locally in the browser. Inputs are not uploaded or saved. You must review the output and run any installation commands yourself.

### Can I paste a shell command into the arguments field?

No. Enter an absolute executable path separately and one literal argument per line. The builder escapes dollar signs and percent signs rather than expanding variables, and does not run pipes or redirects. Blank lines are ignored; empty arguments and standalone semicolons are not supported.

### Which service types are supported?

Only system-level Type=simple units for foreground processes under an existing non-root account. Forking daemons, notify services, oneshot jobs, timers, template units, and user services need different configuration.

### Is an EnvironmentFile the same as sourcing a .env file?

No. systemd parses the file using its own assignment and quoting rules. It does not execute a shell or expand shell expressions. Use plain KEY=value assignments and check systemd.exec for details; do not assume an application's dotenv file is compatible.

