crans_bcfg2/Python/etc/systemd/system/intranet2.service

46 lines
1.5 KiB
Desktop File

# -*- coding: utf-8; mode: python -*-
info["owner"] = "root"
info["group"] = "root"
info["mode"] = 0644
out("""#Fichier géré par Bcfg2
# Fichier systemd pour faire fonctionner l'intranet avec gunicorn
# Ce service est configuré pour :
# ---> Ouvrir, si besoin, la socket intranet2 avant de démarrer
# ---> Démarrer, si besoin, nginx avant de démarrer
# ---> Démarrer, si besoin, postgresql avant de démarrer
# ---> Se lancer en tant que daemon
[Unit]
Description=Crans Intranet 2
Requires=nginx.service
Requires=intranet2.socket
After=nginx.service
After=network-online.target
[Service]
Type=forking
User=root
Group=root
PIDFile=/run/intranet2.pid
WorkingDirectory=/usr/local/django/intranet/""")
if has('intranet2-dev'):
out("ExecStartPre=/usr/bin/pg_isready -h localhost -U crans -d django")
else:
out("ExecStartPre=/usr/bin/pg_isready -h thot.adm.crans.org -U crans -d django")
out("""ExecStart=/usr/bin/gunicorn intranet.wsgi:application --pid=/run/intranet2.pid --name www-data --user www-data --group www-data --daemon --log-file /var/log/gunicorn/intranet2.log --log-level=info --bind=unix:///tmp/gunicorn-intranet.sock --workers=1
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
Restart=on-failure
RestartSec=65
StartLimitInterval=60
StartLimitBurst=2""")
if has('intranet2-dev'):
out("EnvironmentFile=/usr/local/django/intranet/testing.env")
else:
out("EnvironmentFile=/usr/local/django/intranet/prod.env")
out("""
[Install]
WantedBy=multi-user.target
Also=intranet2.socket""")