Un restarter
Bonjour à tous.
En me basant sur le restarter de KaMi-Nezumi (http://www.zone-emu.fr/thread-9368.html), j'ai réalisé un restarter pour un programme (que je nommerai "toto" ici).

Code :
#! /bin/bash

while true
do
  PID=$(pidof toto)
  if (( PID < 1 ))
  then
        ./toto
        echo "Le programme a crashé."
        echo "Redémarrage..."
  fi
  sleep 5
done

Je souhaite maintenant que ce restarter sauvegarde l'heure du crash du programme dans un fichier texte. Comment puis-je réaliser cette partie du script ?

Cordialement,
tu ajoutes :
Citation :date +%Y%m%d_%H.%M.%S >> ./logs/crash.log
après le "./toto" n'importe ou par rapport aux affichages de texte.

L'heure est ici formaté en Ymd_H.M.S, tu peux le formater comme tu veux ou prendre le format par défaut du système avec :
Citation :date >> ./logs/crash.log
Je te remercie beaucoup pour cette réponse rapide !
Tu peux aussi envoyer un email lors des crashs.
En effet.

Je reviens à la charge ! Ce programme est un programme qui est accessible depuis internet. Il lui arrive parfois de ne plus fonctionner (de ne plus envoyer de données), mais sans que le processus ne se ferme. Les utilisateurs ne peuvent donc plus accéder au programme, bien que celui-ci tourne toujours.
Il faudrait donc tester l'utilisation du port du programme. Si le port est actif, le programme n'a pas planté et il est toujours accessible. Sinon, il faut tuer le processus et le relancer.

La deuxième partie est simple à réaliser. La première l'est un peu moins.
J'ai regardé un peu sur internet. La seule commande qui se rapproche est nmap. Seulement, celle-ci vérifie si un port est ouvert ou fermé, pas s'il est actif.

Comment puis-je le faire ?
5 techniques différentes pour check un port : http://www.planetmy.com/blog/how-to-chec...-on-linux/
Au risque de paraitre idiot, pourquoi ne pas tenter d'ouvrir un socket via un script php par exemple, et si la connexion ne passe pas killer le process ?
Milk > un truc du genre ?
Code :
if [ -z `php -r "if (@fsockopen('127.0.0.1', 1234)) echo 1;"` ]; then
    # restart server
fi
Dans tous les cas ça revient toujours au même, c'est que des tricks de progra après.
J'savais même pas que c'était possible Huh
Linux peut exécuter le php comme un script. On peut lui donner un fichier à exécuter (les echo s'afficheront directement dans la console), ou alors lui donner carrément du du code directement.

Retourner en haut Accueil