# -*- 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""")