SystemD ======= Basics:: systemctl status foo # same as foo.service systemctl status foo.mount # what's wrong? systemctl --failed # what's slow? systemd-analyze blame systemctl list-dependencies foo.service Compose project that needs host mount starting on boot:: cat <<'EOF' > /etc/systemd/system/foo.service [Unit] Description=foo Requires=docker.service After=network.target docker.service foo.mount [Service] WorkingDirectory=/srv/foo # ExecStartPre=/usr/local/bin/docker-compose pull ExecStart=/usr/local/bin/docker-compose up ExecStop=/usr/local/bin/docker-compose down --remove-orphans [Install] WantedBy=multi-user.target EOF systemctl daemon-reload systemctl enable foo systemctl start foo Mounts:: vi /etc/fstab systemctl restart remote-fs.target Simple service running as unprivileged user `foo` that depends on another service and network:: cat <<'EOF' > /etc/systemd/system/foo.service [Unit] Description=foo Requires=another.service After=network.target another.service [Service] Type=simple User=foo Group=foo WorkingDirectory=/srv/foo ExecStart=/usr/local/bin/docker-compose up ExecStop=/usr/local/bin/docker-compose down --remove-orphans [Install] WantedBy=multi-user.target EOF systemctl daemon-reload systemctl enable foo systemctl start foo Links: - https://www.freedesktop.org/software/systemd/man/systemd.mount.html Rants ----- Where's the 90%-use-case tutorial? Why are `User=` and `Group=` defined in `systemd.exec `_ when I want to define a `systemd.service `_ in a `systemd.unit `_ ?