A placer dans /etc/systemd/system/
[Unit] Description=Mon service qui est beau Documentation=URL si besoin After=network.target [Service] Type=simple User=cequetuveux WorkingDirectory=/opt/monservice ExecStart=ligne de commande pour lancer Restart=on-failure [Install] WantedBy=multi-user.target
systemctl daemon-reload systemctl enable --now monService
#!/bin/bash if [ $# -ne 4 ] then echo " " echo 'Ce script fabrique un "service" qui lance un script shell sous systemd' echo 'Il necessite obligatoirement 4 arguments qui sont:' echo ' - Le nom du service' echo ' - Le chemin complet du script a lancer' echo ' - Le nom des services qui doivent deja avoir ete lances' echo ' - yes ou no:' echo ' yes si a la fin du script on considere que le service est toujours actif' echo ' no dans le cas contraire (utile si le script en question est cense tourner tout le temps)' echo ' ' echo ' Exemples :' echo " $0 'monservice' '/home/moi/scripts/mon-script.sh' '' yes" echo " $0 'monservice' '/home/moi/scripts/mon-script.sh' 'apache2.service postfix.service' yes" echo ' ' echo " Dans le second cas, notre service ne sera lance qu'apres apache et postfix." echo ' ' exit 1 fi NAME=$1 SCRIPT_FILE=$2 AFTER=$3 REMAIN_AFTER_EXIT=$4 SERVICE_FILE="/etc/systemd/system/$1.service" echo "[Unit]" >$SERVICE_FILE echo "Description=Service basique pour lancer $SCRIPT_FILE" >>$SERVICE_FILE echo "After=$AFTER" >>$SERVICE_FILE echo "Requires=$AFTER" >>$SERVICE_FILE echo "[Service]" >>$SERVICE_FILE if [ "$REMAIN_AFTER_EXIT" == "no" ] then echo "Type=simple" >>$SERVICE_FILE; else echo "Type=forking" >>$SERVICE_FILE; fi echo "ExecStart=$SCRIPT_FILE" >>$SERVICE_FILE echo "TimeoutSec=0" >>$SERVICE_FILE echo "RemainAfterExit=$REMAIN_AFTER_EXIT" >>$SERVICE_FILE echo "SysVStartPriority=99" >>$SERVICE_FILE echo "RestartSec=5" >>$SERVICE_FILE echo "Restart=on-failure" >>$SERVICE_FILE echo "[Install]" >>$SERVICE_FILE echo "WantedBy=multi-user.target" >>$SERVICE_FILE chmod 755 $SCRIPT_FILE systemctl -q enable $NAME
sudo journalctl --disk-usage
On tronque à 500Mo :
sudo journalctl --vacuum-size=500M
On ouvre le fichier de configuration :
vim /etc/systemd/journald.conf
On décommente SystemMaxUse et SystemMaxFileSize en ajoutant les valeurs qui vont bien :
SystemMaxUse=500M #SystemKeepFree= SystemMaxFileSize=500M #SystemMaxFiles=100
Et voilà comment passer de 2Go à 500Mo de log.