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

Shell et commandes GNU Discussion :

Script Shell : Lancement d'un service java [Débutant(e)]


Sujet :

Shell et commandes GNU

  1. #1
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 43
    Par défaut Script Shell : Lancement d'un service java
    Bonjour,

    Je dispose d'une application qui fonctionne sous windows et linux en java . Sous windows l'application crait 2 services que l'on va appeler "serv1" et "serv2". Sous linux (ubuntu 8.04) j'utilise dans le terminal la commande "java -jar serv1.jar (et serv2.jar) pour lancer les services.
    Je souhaiterai créer 1 fichier sh pour chaque service afin de les lancer au démarrage et de pouvoir les stop et start.
    J'ai essayé avec le "skeleton" mais je suis un peu limité à ce niveau.

    Merci d'avance de votre aide.

  2. #2
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 43
    Par défaut
    Comment puis je faire pour démarrer les 2 daemon au lancement de ubuntu 8.04 en sachant qu'ils sont en .jar.

    S'il vous faut plus d'informations , n'hésiter pas à me le demander.

    Merci d'avance.

  3. #3
    Membre chevronné Avatar de KindPlayer
    Profil pro
    Inscrit en
    Février 2007
    Messages
    471
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 471
    Par défaut
    Dans ton script tu dois executer comme tu as dit java -jar <fichier jar>. Pour ça il faut que le chemin vers java soit dans le PATH. Il faut effectivement utiliser le skeleton pour créer ton script. Pour qu'il soit lancé au démarrage, il faut mettre un lien vers ce script dans /etc/rc<numero>.d/ avec comme nom S<chiffre><chiffre><Nom du script> par exemple ln -s /etc/init.d/mon_demon.sh /etc/rc2.d/S99mon_demon (il vaut mieux mettre un nombre le plus élevé possible au cas ou ton service nécessite d'autres services qui doivent etre activés avant) Verifie en tapant runlevel dans ton terminal quels repertoires rc vont etre visités. Si c'est 2, seront visités rc0.d, rc1.d,rc2.d, ton lien doit etre dans un de ces répertoires.
    Pour écrire le script de démarrage basé sur le skeleton, tu peux t'inspirer des scripts deja presents dans init.d.

  4. #4
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 43
    Par défaut
    Merci Beaucoup

  5. #5
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 43
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    PATH=/usr/sbin:/usr/bin:/sbin:/bin
    DESC="xxx server"
    NAME=xxxxxxxxxxxxxxxx.jar
    DAEMON=/usr/bin/java -jar $NAME
    DAEMON_ARGS=""
    PIDFILE=/var/run/$NAME.pid
    SCRIPTNAME=/etc/init.d/$NAME
    j'ai mis un racourcis du serveur dans "bin" , mon serveur ne monte pas.

    Si vous avez une idée .

    Merci

  6. #6
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 43
    Par défaut
    Bonjour,

    Bon visiblement , mais explications ne doivent pas etre géniale.
    Alors j'ai changé mon fusil d'épaule.
    Complément d'information:
    Cette application tourne sous windows aucun pkg n'a été édité pour les distri linux. Mais étant donné que ce logiciel est en java . Nous avons récupéré le dossier contenant le logiciel et copier dans un répertoire sous Ubuntu8.04 ./usr/local
    Ce dossier contient 2 services "serv1.jar" et "serv2.jar" que je démarre de cette manière.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Screen –d –m –S xxxxxxxxxxxx java –jar serv1.jar
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Screen –d –m –S xxxxxxxxxxxx java –jar serv2.jar
    Apres test avec les applications clientes fonctionnent bien.

    Je souhaiterai démarrer ces deux serveurs au démarrage de ubuntu.
    Pour ce qui est du skeleton , j'ai abandonné.
    Par contre , j'ai trouvé un script shell interressant que j'ai formaté de cette manière.Mais il me manque pas mal de chose, exemple comment lui indiquer ou est le "logiciel.jar" .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    #!/bin/bash
     
    $NAME="java_logiciel"
    # $NAME=$2
    $CMD="java -jar logicielle.jar"
    # $CMD=$3
     
    case "$1" in
    start)
    screen -d -m -S $NAME $CMD
    ;;
    stop)
    kill `screen -ls |grep $NAME |awk -F . '{print $1}'|awk '{print $1}'$
    ;;
    status)
    if [[ `screen -ls |grep $NAME` ]]
    then
    echo "$NAME is running."
    else
    echo "$NAME not found."
    fi
    ;;
    *)
    echo "Usage: $0 {start|stop|status}"
    exit 1
    ;;
    esac
    exit 0
    Etant débutant dans ce dommaine , je réclame votre aide. En espérant avoir été plus clair.

    Merci d'avance.

  7. #7
    Membre chevronné Avatar de KindPlayer
    Profil pro
    Inscrit en
    Février 2007
    Messages
    471
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 471
    Par défaut
    Et qu'est ce qui ne marche pas au juste? Tu peux tracer ton script? On en saura plus avec des messages d'erreur

Discussions similaires

  1. Exécution script shell à distance à travers une classe Java
    Par midoom dans le forum Général Java
    Réponses: 1
    Dernier message: 27/07/2012, 04h17
  2. comment faire appel d'une application java dans un script shell?
    Par moradbe dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 01/02/2007, 19h55
  3. [Système][Process] Scripts shell à partir d'une appli java
    Par mickbzh dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 22/07/2005, 15h40
  4. [Shell]Détecter la version de java dans un script
    Par sc_wizard29 dans le forum Général Java
    Réponses: 4
    Dernier message: 01/07/2005, 10h00
  5. Lancement d'un programme java depuis un script php
    Par gexti dans le forum Développement Web en Java
    Réponses: 8
    Dernier message: 07/05/2004, 17h40

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