L’explication

Le script vérifie que le statut du service contient running via la commande suivante :

sudo /etc/init.d/domoticz.sh status

si l’on ne trouve pas running dans la réponse à cette commande, on restart le service et on envoi une notification telegram.

Ce que nous renvoie la commande status =>

Si tout va bien, on a quelque chose comme ça :

pi@raspberrypi:~/domoticz/scripts $ sudo /etc/init.d/domoticz.sh status
● domoticz.service - LSB: Home Automation System
 Loaded: loaded (/etc/init.d/domoticz.sh)
 Active: active (running) since sam. 2018-02-03 14:28:33 CET; 13min ago
 Process: 20255 ExecStop=/etc/init.d/domoticz.sh stop (code=exited, status=0/SUCCESS)
 Process: 20326 ExecStart=/etc/init.d/domoticz.sh start (code=exited, status=0/SUCCESS)
 CGroup: /system.slice/domoticz.service
 └─20332 /home/pi/domoticz/domoticz -daemon -www 8080 -sslwww 443

févr. 03 14:28:33 raspberrypi domoticz.sh[20326]: 2018-02-03 14:28:33.416 Domoticz V3.8153 (c)2012-2017 GizMoCuz
févr. 03 14:28:33 raspberrypi domoticz[20331]: Domoticz is starting up....
févr. 03 14:28:33 raspberrypi domoticz.sh[20326]: 2018-02-03 14:28:33.422 Build Hash: 494fff7, Date: 2017-07-30 12:19:41
févr. 03 14:28:33 raspberrypi domoticz.sh[20326]: 2018-02-03 14:28:33.423 Startup Path: /home/pi/domoticz/
févr. 03 14:28:33 raspberrypi domoticz.sh[20326]: domoticz: Domoticz is starting up....
févr. 03 14:28:33 raspberrypi domoticz[20332]: Domoticz running...
févr. 03 14:28:33 raspberrypi systemd[1]: Started LSB: Home Automation System.

Sinon on a par exemple :

● domoticz.service - LSB: Home Automation System
Loaded: loaded (/etc/init.d/domoticz.sh) 
Active: active (exited) since sam. 2018-01-27 11:20:14 CET; 1 weeks 0 days ago 
Process: 14562 ExecStop=/etc/init.d/domoticz.sh stop (code=exited, status=0/SUCCESS)
Process: 14572 ExecStart=/etc/init.d/domoticz.sh start (code=exited, status=0/SUCCESS) 
Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.

 

Le script

#!/bin/bash
# Script qui vérifie l'état de domoticz et qui relance si off

now=$(date) #récupération de la date et heure pour les logs

#Récupération du retour de la commande de status
domoticz=$(sudo service domoticz.sh status)

#echo $domoticz

if [[ "$domoticz" != *"running"* ]] # Si le service n'est pas running
then
 echo "on relance"
 relance=$(sudo service domoticz.sh restart) #On le relance
 echo "$now relance : $relance" #On log la lancement
 curl "https://api.telegram.org/botXXXXXXXXXXX/sendMessage?chat_id=XXXXXXX&text=Domoticz offline, Domoticz vient d'être redémarré!"
else
 echo "$now Domoticz lancé" #On log l'état normal
fi

exit 0

 

L’automatisation

On ajoute la ligne suivante dans la crontab :

* * * * * /home/pi/domoticz/scripts/verif_domoticz.sh

 

Source

http://debrouilhome.fr/2015/01/domoticz-offline-comment-gerer-les-plantages-du-service.html

 

Publicités