fishfish meurt et ne recommence pas

L’un de nos serveurs d’applications (Glassfish v3.0.1) continue de s’écraser sans aucune raison. Parfois, je suis éloigné d’Internet, donc je ne peux pas le reprendre. Par conséquent, j’ai écrit un script bash simple pour attendre 10 minutes, puis exécuter asadmin. C’est comme:

#!/bin/bash while true; do sleep 600; sudo /home/ismetb/glassfishv3.0.1/glassfish/bin/asadmin start-domain; done 

Cela semble fonctionner correctement, mais j’ai quelques problèmes:

  1. Si je termine le script bash (en appuyant sur les touches ctrl + z), le processus Java (Glassfish) meurt et les commandes start-domain et stop-domain ne fonctionnent pas du tout. Cela signifie que je ne peux ni arrêter Glassfish, ni y accéder. Je ne sais pas si quelqu’un d’autre a connu ce problème avant ou non. Si le processus meurt, la seule chose que je puisse faire est de rechercher l’ID du processus Java et de le supprimer du terminal. Ce n’est pas du tout souhaitable. Des idées pour lesquelles le processus Java meurt lorsque je quitte le script?
  2. Ce que je veux append à mon script est quelque chose comme vérifier le port utilisé par Glassfish. Si le port est occupé, je peux supposer que Glassfish n’est pas en panne! (Cependant, le port (8080 par défaut) pourrait encore être utilisé par Glassfish bien que Glassfish soit mort, je n’en suis pas sûr). Sinon, à l’aide d’un code simple, je peux obtenir l’identifiant du processus Java et le tuer tous. Ensuite, la commande start-domain fonctionnera correctement. Des idées ou des instructions sur la façon dont je peux le faire?

Vous pouvez utiliser un travail cron la place. Pour installer un job cron pour root, entrez

 sudo crontab -e 

et append cette ligne

 */10 * * * * /home/ismetb/glassfishv3.0.1/glassfish/bin/asadmin start-domain 

Cela exécutera asadmin toutes les dix minutes.

Si vous n’êtes pas à l’aise avec la ligne de commande, vous pouvez également essayer gnome-schedule , mais je n’ai aucune expérience à ce sujet.

Pour votre deuxième problème, vous pouvez utiliser curl ou wget pour accéder à glassfish. Vous pouvez essayer d’obtenir une URL ou même accéder à l’interface d’administration, et si vous n’obtenez pas de réponse, supposez que Glassfish est en panne.