IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Comment stopper un programme serveur proprement ?


Sujet :

avec Java

  1. #1
    Membre du Club
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2010
    Messages : 61
    Points : 42
    Points
    42
    Par défaut Comment stopper un programme serveur proprement ?
    Bonjour,

    Je possède un programme serveur JAVA qui doit tourner en permanence.
    Jusque là, pas de problème, néanmoins, je n'arrive pas à trouver comment envoyer une interruption à mon programme java avec une ligne de commande (Kill?).

    Mon programme serveur tourne sur une machine sous Debian.

    Ce que j'aimerai faire c'est généré une interruption manuellement avec une commande de façon à ce que la boucle que voici :

    //Boucle présente dans mon programme côté serveur
    while (toto = true){
    ...je tourne...
    }

    S’arrête proprement, afin que je puisse fermer toute les connexions TCP.

    Pour cela je me demandé si c'était possible de déclencher une interruption sur le programme en ligne de commande une fois connecté en ssh sur mon serveur de façon à ce que le programme JAVA côté serveur lance une fonction pour passer la variable "toto" à false.

    Comme ça le thread se termine bien et je peux tout fermer, les connexions, etc...


    Quelqu'un c'est déjà confronté à ce soucis ? ^^'

    Merci d'avance pour votre aide !

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Tu dois pouvoir trouver sans trop de soucis des librairiesjava pour gérer les signaux avec ton programme. Cependant, ce n'est pas portable. Il est préférable d'utiliser la connexion TCP que gère ton programme pour lui envoyer des ordres

    Il y a aussi les shutdown hooks qui peuvent être utilisé pour être informé de l'arrêt de la jvm (peux importe la cause de l'arrêt).

  3. #3
    Membre du Club
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2010
    Messages : 61
    Points : 42
    Points
    42
    Par défaut
    Hum... pas portable = pas bien :p

    Je ne veux pas trop utiliser les liaisons TCP établies pour la simple et bonne raison que les liaisons effectuées seront faites par plusieurs clients. Et les clients, peuvent être n'importe qui car n'importe qui pourra télécharger le programme client.

    Les shutdownhook sont des fonctions appelées lors d'une demande d’arrêt de la JVM ? Ça marche lors d'un kill "numéro du processus alors?"
    Si c'est le cas je vais me pencher vers ça !

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    un kill normal, oui, mais pas sur un sigsegv par exemple ni sur un crash jvm.

    Tu peux utiliser un port séparer ou exiger un mot de passe ou un toekn particulier pour les commandes d'administration. C'est comme ça qu'on arrête tomcat par exemple. On peux aussi lié le port "de controle" à localhost uniquement pour obliger à être une application locale pour faire le shutdown.

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/03/2011, 17h17
  2. Réponses: 7
    Dernier message: 29/05/2009, 20h47
  3. Comment stopper seulement une base sur un serveur multibase?
    Par korntex5 dans le forum Administration
    Réponses: 3
    Dernier message: 26/01/2009, 17h14
  4. Réponses: 1
    Dernier message: 18/02/2007, 20h30
  5. Comment débuter en programmation ?
    Par Marc Lussac dans le forum Débuter
    Réponses: 0
    Dernier message: 08/04/2002, 11h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo