systemd: Einfaches Autoinstall-Skript für Services

English Deutsch

Ich verwende dies in Git-Repositories, um den Bereitstellungsprozess zu vereinfachen.

a-simple-systemd-service-autoinstall-script.sh
#!/bin/bash
# Dieses Skript installiert und aktiviert/startet einen systemd-Service
# Es installiert außerdem die Service-Datei
export NAME=MyService

cat >/etc/systemd/system/${NAME}.service <<EOF
# TODO systemd .service-Datei hier einfügen
EOF

# Service aktivieren und starten
systemctl enable --now ${NAME}.service

Das folgende Beispiel installiert automatisch einen docker-compose systemd-.service:

a-simple-systemd-service-autoinstall-script-2.sh
#!/bin/bash
# Dieses Skript installiert und aktiviert/startet einen systemd-Service
# Es installiert außerdem die Service-Datei
export NAME=MyService

cat >/etc/systemd/system/${NAME}.service <<EOF
[Unit]
Description=${NAME}
Requires=docker.service
After=docker.service

[Service]
Restart=always
User=root
Group=docker
WorkingDirectory=$(pwd)
# Container herunterfahren (falls laufend), bevor die Unit gestartet wird
ExecStartPre=$(which docker-compose) -f docker-compose.yml down
# Container starten, wenn die Unit gestartet wird
ExecStart=$(which docker-compose) -f docker-compose.yml up
# Container stoppen, wenn die Unit gestoppt wird
ExecStop=$(which docker-compose) -f docker-compose.yml down

[Install]
WantedBy=multi-user.target
EOF

# Service aktivieren und starten
systemctl enable --now ${NAME}.service

Check out similar posts by category: Docker, Systemd