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

Langage Java Discussion :

Lancer une application java en tache de fond


Sujet :

Langage Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 40
    Points : 36
    Points
    36
    Par défaut Lancer une application java en tache de fond
    Bonjour à tous,
    Alors voila, j'ai fait un serveur socket et j'arrive le lancer via SSH avec putty en tapant :
    java -jar monServer.jar
    Le serveur socket se lance pas de prblème, par contre lorsque je quitte putty le serveur s'arrête.
    Je voudrai savoir comment lancer une application qui ne s'arrête pas quand on quitte le client SSH et aussi comment on arrête cette application.
    Merci

  2. #2
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Par défaut
    Sous Linux tu peus lancer une tâche de fond en rajoutant '&' à la fin de la commande.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -jar monServer.jar &
    Pour voir la tâche et son numéro, tapes jobs
    Pour remettre la tâche de fond au premier plan, tapes fg NumérodelaTâche.
    et pour le reprendre en tâche de fond bg NumérodelaTâche.(bg pour backgroud et fg pour foreground).
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 40
    Points : 36
    Points
    36
    Par défaut
    Bonjour et merci de votre réponse.
    Lorsque je lance
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -jar monServer.jar &
    Ca m'affiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [root@... server]# java -jar monServer.jar &
    [1] 11046
    [root@... server]# Serveur lancé, écoute du port 1024
    A ce stade je n'arrive pas à me connecter au serveur, il faut que je fasse :
    Mais là même problème lorsque je quitte putty je n'arrive plus à m'y connecter.
    Je fait alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    java -jar monServer.jar &
    jobs
    Et j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [1]+  Stopped                 java -jar monServer.jar
    Comment faire alors pour mettre une application en tache de fond afin qu'elle reste en marche même si je quitte le client SSH ?
    Merci

  4. #4
    Membre actif Avatar de trax44
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 300
    Points : 233
    Points
    233
    Par défaut
    euh c'est moi ou tu lances tes programmes en root ???

    Euh sinon tu peux aussi mettre ça dans un thread et regler la priorité (cf javadoc thread)

    Pour arreter le thread tu romptes la condition qui fait la boucle. En général, tu as une variable boolean dans dans while.


    trax

  5. #5
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Par défaut
    Citation Envoyé par trax44
    Euh sinon tu peux aussi mettre ça dans un thread et regler la priorité (cf javadoc thread)

    Pour arreter le thread tu romptes la condition qui fait la boucle. En général, tu as une variable boolean dans dans while.


    trax
    ça ne changera rien etant donné que lorsqu'il ferme son terminal, cela tu le Thread principal et donc forcement tous les threads lancés par celui-ci.

    Désolé nanu, je ne connais pas la solution à ton problème.
    Si tu ne trouve pas de solution "Java", il va te falloir regarder du coté de l'OS (une solution du même genre que celle que je t'ai proposé ... mais une qui marche )
    Essaye de poser la question sur le forum Linux .
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  6. #6
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2004
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2004
    Messages : 138
    Points : 125
    Points
    125
    Par défaut
    T'as programmé ton serveur pour qu'il ecoute sur le port et qu'ensuite pour chaque nouvel requete il crée un Thread qui s'en occupe ou pas ?
    Car tu es obligé de créer un Thread qui s'occupe de ta requete car d'autre requete peuvent arriver pendant ce temps.
    Tu as donc un Thread Principale qui s'occupe d'accepter tes nouvelles connexion et pour chaque nouvel connexion un nouveau Thread est créé pour la traiter... Je pense que ton problème vient de là. Sinon je n'ai rien compris...

  7. #7
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Août 2002
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2002
    Messages : 44
    Points : 39
    Points
    39
    Par défaut
    Il faut que tu charges ton daemon par un script :
    http://lea-linux.org/cached/index/Ad...t-daemons.html

    Ce lien est super bien fait, tu y trouveras ton bonheur je pense

  8. #8
    Candidat au Club
    Inscrit en
    Décembre 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1
    Points : 3
    Points
    3
    Par défaut Miex vaut tard que jamais
    Il faut que tu mettes un nohup avant ta commande de manière à dire que ton processus ignore le signal qui lui sera envoyé lors de la fermeture du terminal.
    Par contre pour tuer ton processus tu devras passer par la commande kill PID
    voilà

Discussions similaires

  1. Lancer une application Java au démarrage du serveur
    Par TekP@f dans le forum Général Java
    Réponses: 6
    Dernier message: 17/02/2009, 10h28
  2. Réponses: 1
    Dernier message: 09/09/2008, 00h58
  3. Réponses: 9
    Dernier message: 30/08/2008, 16h42
  4. lancer une application java sur un serveur distant en exécutant un script shell
    Par M_Dandouna dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 12/06/2008, 14h40
  5. Lancer une application Java au démarrage
    Par mezoo dans le forum Administration système
    Réponses: 2
    Dernier message: 05/07/2006, 17h02

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