Webserver: Caddy Unit File
Checking Status
systemctl status caddy
Loaded: loaded(/lib/systemd/system/caddy.service; enabled; vendor preset:>
Viewing Unit File
cat /lib/systemd/system/caddy.service
# caddy.service
# For using Caddy with a config file.
#
# Make sure the ExecStart and ExecReload commands are correct
# for your installation.
#
# See https://caddyserver.com/docs/install for instructions.
#
# WARNING: This service does not user the --resume flag, so if you
# use the API to make changes, they will be overwritten by the
# Caddyfile next time the service is restarted. If you intend to
# use Caddy's API to configure it, add the --resume flag to the
# `caddy run` command or use the caddy-api.service file instead.
[Unit]
Description=Caddy
Documentation=https://caddyserver.com/docs
After=network.target network-online.target
Requires=network-online.target
[Service]
Type=notify
User=caddy
Group=caddy
ExecStart=/usr/bin/caddy run --environ --config /etc/caddy/Caddyfile
ExecReload=/usr/bin/caddy reload --config /etc/caddy/Caddyfile
TimeoutStopSec=5s
LimitNOFILE=1048576
LimitNPROC=512
PrivateTmp=true
ProtectSystem=full
AmbientCapabilities=CAP_NET_BIND_SERVICE
[Install]
WantedBy=multi-user.target
This unit file is very similar to the NGINX
unit file.
In the [Unit]
section it defines a description, a link to the documentation and defines some relationships.
In the [Service]
section it sets the ExecStart=
directive among other configurations.
In the [Install]
section it defines that this service should be created before the multi-user.target
run level is complete.
Bonus
Take note of how this unit file also defines the user and group this service should run under.