Bonjours,
J'ai un question :
J'ai un serveur sous linux Debian 4 qui tourne impec avec plein d'appli dessus qui ouvre des ports en TCP. Certaine de ces applis sont démarrées plusieurs fois et ouvrent des ports differents en fonction du paramétrage. Mais le pb est que de tps en tps une appli plante, donc le port TCP, ouvert par cette appli, se retrouve indisponible. Cela me pose problème car je ne peux surveillez la machine sans arrêt.
Je recherche donc une solution pour en cas de disparition d'un des ports relancer l'appli correspondante (par un simple sript sh)
je connais bien la commande netstat -nlt xxx mais comment en faire un script (de préférence sh ajouter au cron pour controler toutes les 5 minutes) pour vérifier le port xxx et relancer le script sh qui correspond si netstat réponds pas? là est la question...
Si quelqu'un a une idée je suis preneur. Merci d'avance.
# mauvais reglage ?
Posté par NeoX . Évalué à 2.
et si un serveur ne sait pas rester en ecoute meme s'il a planté sans se relancer de lui meme c'est, là encore, un mauvais serveur.
bon une amorce de reponse quand meme.
- regarde si ton script qui fait serveur n'a pas une option daemon, parfois ca suffit à faire que le serveur se relance automatiquement en cas d'arret
- sinon tu peux scripter en shell ton netstat pour recuperer (ou pas) le port que tu veux surveiller
# grep n'est pas bien ?
Posté par Kerro . Évalué à 2.
# fermer le port dans l'appli en attrapant l'erreur
Posté par Olivier Jeannet . Évalué à 1.
Dans mes applis, j'ai rajouté ceci (quand c'est en C bien sûr) :
int serverSocket = 0; /* variable globale pour être accessible depuis le gestionnaire de signal ci-dessous */
void mysighandler(int mysig)
{
printf("myrcpd: signal %d received\n", mysig);
if (serverSocket) close(serverSocket);
exit(0);
}
[...]
signal(SIGINT, mysighandler);
signal(SIGTERM, mysighandler);
[...]
Ça me permet de tuer le démon via un kill/killall (SIGTERM) ou un ctrl-c (SIGINT) et de le relancer tout de suite sans souci.
# daemontools ou runit?
Posté par Nicolas Bernard (site web personnel) . Évalué à 1.
De même runit: http://smarden.org/runit/ (on peut l'utiliser sans remplacer init).
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.