Script de relance automatique

Un article de Guides Icedslash Hosting.

Introduction

Ce script sert à relancer automatiquement l'un de vos programmes en cas de plantage, ou lorsque le système est relancé. Le script vérifiera à son lancement, que le programme tourne bien ; au cas échéant, il le relancera.

Ce bout de code shell recquiert que le programme en question crée à son lancement un fichier contenant le numéro de PID occupé par ce dernier.

Script Shell

Nous créons par exemple le fichier script.chk, situé dans la racine du dossier du programme. Il contient les lignes suivantes :

#!/bin/sh

DIR_PATH=/home/hosting/shell/votre_compte/dossier_programme
PID_PATH=/home/hosting/shell/votre_compte/dossier_programme/programme.pid
COMMAND=cd $DIR_PATH && ./programme start 

if test -r $PID_PATH; then
 PID=$(cat $PID_PATH)
 if $(kill -CHLD $PID >/dev/null 2>&1); then
   exit 0
 fi
fi
cd $DIR_PATH
$COMMAND &> /dev/null

Il vous faudra donc éditer la valeur des variables DIR_PATH (dossier dans lequel se trouve l'exécutable), PID_PATH (fichier contenant le numéro de PID), COMMAND (commande à exécuter si le programme ne tourne pas).

Le script shell doit pouvoir être exécuté, donc entrez :

chmod u+x script.chk

Tâche cron

Mettre en place une tâche cron sur ce script shell permet d'exécuter le script shell ci-dessus à intervales régulières, afin d'automatiser le mécanisme. Pour éditer vos tâches crons, tapez en ligne de commande :

crontab -e

Vous éditez à présent vos tâches crons via le programme Vim. Voici la ligne à placer pour vérifier toutes les cinq minutes le script shell :

*/5 * * * *  sh /home/hosting/shell/votre_compte/dossier_programme/script.chk &> /dev/null
Icedslash