From 5b5dd5f1f3d9315d9a20cac31e449160dadba051 Mon Sep 17 00:00:00 2001 From: Bastien Lacoste Date: Thu, 26 May 2022 23:30:40 +0200 Subject: [PATCH] systemd --- INSTALL.md | 53 +++++++---------------------------- conf/systemd/etherpad.service | 19 +++++++++++++ 2 files changed, 29 insertions(+), 43 deletions(-) create mode 100644 conf/systemd/etherpad.service diff --git a/INSTALL.md b/INSTALL.md index 033c054..72074a1 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -167,60 +167,24 @@ CHATONS par Libre en Communs (https://a-lec.org)\nmailto:contact+pad@chalec.org\ # Démarrer le service Etherpad -Note @todo : cette partie est en travaux et le mécanisme décrit devrait évoluer vers un service -systemd - Tester le démarrer du service etherpad-lite : `$ src/bin/run.sh` Vérifier que le démarrage se passe sans encombre. Puis intérrompre le processus avec : CTRL-C - -Installer screen : +Copier le fichier de service systemd : ``` -# apt install screen +cp /home/etherpad/pad.git/conf/systemd/etherpad.service /etc/systemd/system/ ``` -Copier le fichier suivant dans un fichier run.sh : +Activer et démarrer le service : ``` -#!/bin/sh -export NODE_ENV=production -/usr/bin/screen -dmS pad "/home/etherpad/etherpad-lite/src/bin/run.sh" +systemctl enable --now etherpad ``` -Rendre le fichier exécutable : -`$ chmod +x run.sh` - -Lancer le script : -`$ ./run.sh` - -Vérifier que le pad tourne dans le screen. Vérifier que la commande suivante fait apparaitre le pad dans la liste des écrans : -`screen -ls` - -Créer le script `/home/etherpad/checkrestart.sh` qui va vérifier s'il y a besoin de relancer le processus : +Vérifier que le service tourne : ``` -#!/bin/sh - -ret=`ps -edf | grep etherpad-lite | grep -v grep` -status=$? - -if [ "$status" -ne "0" ] ; then -# echo "It seems like Etherpad-lite has been stopped or crashed.\nStarting etherpad-lite..."; - /home/etherpad/run.sh -fi -``` - -Le rendre exécutable : -`chmod +x checkrestart.sh` - - -Configurer du cron : -`$ crontab -e` - -et insérer les lignes suivantes dans le fichier : -``` -@reboot /home/etherpad/run.sh > /dev/null -* * * * * /home/etherpad/checkrestart.sh +systemctl status etherpad ``` # Installation du proxy nginx @@ -372,9 +336,12 @@ Faire un lien générique pour avoir un nom de dossier invariant "statoolinfos" $ ln -s statoolinfos- statoolinfos ``` -Restaurer la configuration statoolinfos : +Copier les fichiers html : ``` cp -r /home/etherpad/pad.git/html/ /var/www/ +``` +Restaurer la configuration statoolinfos : +``` cp /home/etherpad/pad.git/conf/statoolinfos/pad.chalec.org.conf /home/statoolinfos/conf/ ``` diff --git a/conf/systemd/etherpad.service b/conf/systemd/etherpad.service new file mode 100644 index 0000000..3c85a3f --- /dev/null +++ b/conf/systemd/etherpad.service @@ -0,0 +1,19 @@ +[Unit] +Description=Etherpad, the collaborative editor. +After=syslog.target network.target postgresql.target + +[Service] +Type=simple +User=etherpad +Group=etherpad +WorkingDirectory=/home/etherpad/etherpad-lite/ +Environment=NODE_ENV=production + +ExecStart=/home/etherpad/etherpad-lite/bin/fastRun.sh +StandardOutput=append:/var/log/etherpad/output.log +StandardError=append:/var/log/etherpad/error.log + +Restart=always + +[Install] +WantedBy=multi-user.target \ No newline at end of file