Un script simple d'autoinstallation de service systemd

J’utilise ceci dans les dépôts git pour faciliter le processus de déploiement

a-simple-systemd-service-autoinstall-script.sh
#!/bin/bash
# Ce script installe et active/démarre un service systemd
# Il installe aussi le fichier de service
export NAME=MyService

cat >/etc/systemd/system/${NAME}.service <<EOF
# TODO Copier & coller le fichier .service systemd ici
EOF

# Active et démarre le service
systemctl enable --now ${NAME}.service

L’exemple suivant installe automatiquement un .service systemd docker-compose :

a-simple-systemd-service-autoinstall-script-2.sh
#!/bin/bash
# Ce script installe et active/démarre un service systemd
# Il installe aussi le fichier de service
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)
# Arrête le conteneur (s'il fonctionne) avant que l'unité soit démarrée
ExecStartPre=$(which docker-compose) -f docker-compose.yml down
# Démarre le conteneur quand l'unité est démarrée
ExecStart=$(which docker-compose) -f docker-compose.yml up
# Arrête le conteneur quand l'unité est arrêtée
ExecStop=$(which docker-compose) -f docker-compose.yml down

[Install]
WantedBy=multi-user.target
EOF

# Active et démarre le service
systemctl enable --now ${NAME}.service

Consultez les articles similaires par catégorie : Docker Systemd