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

Administration système Discussion :

Arrêt d'un screen


Sujet :

Administration système

  1. #1
    Membre habitué Avatar de ddams
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2002
    Messages : 147
    Points : 148
    Points
    148
    Par défaut Arrêt d'un screen
    Bonjour,

    J'ai une question qui sera certainement très simple pour les linuxiens avertis que vous êtes.

    Je lance un serveur (monAppli) grâce à un screen dont le nom est monScreen :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    screen -dmS monScreen monAppli
    Je souhaiterais arrêter ce screen. Comment procéder sachant que je ne connais que son nom (nomScreen) ?

    J'ai essayé ça mais ça ne marche pas car le nom du screen s'est vu automatiquement rajouter le PID du process devant son nom.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    kill `screen -ls |grep monScreen`
    Quelqu'un aurait-il la solution ?

    merci d'avance
    @+ddams

  2. #2
    Membre habitué Avatar de _kal_
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2006
    Messages : 178
    Points : 156
    Points
    156
    Par défaut
    Essayer de récupérer l'appli via

    Puis "Ctrl-c" ?

    EDIT: Ooops, j'avais pas lu que t'avais pas le PID. Tu peux l'obtenir grâce à un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ps aux | grep <nom_processus>

  3. #3
    Membre régulier Avatar de Goldocrack
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 126
    Points : 112
    Points
    112
    Par défaut
    Salut à toi

    Citation Envoyé par ddmas
    Je souhaiterais arrêter ce screen. Comment procéder sachant que je ne connais que son nom (nomScreen) ?
    Je pense que tu devrais jeter un oeil du côté de la commande "pkill -f" qui permet de faire un kill d'un prog d'on on ne connait qu'une partie du nom...

    Dans ton cas, le mieux est de faire un "ps -aux" une première fois pour voir comment apparait ton prog dans la liste, ensuite tu pourras utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pkill -f nom_du_prog_a_tuer
    (le -f est très important)

    Si tu as peur de faire une annerie, tu peux commencer avec un qui te permet de récuperer le PID du prog (c'est la même commande que pkill sauf qu'il ne tue pas le prog )

    Bon courage
    • Un langage de programmation est censé être une façon conventionnelle de donner des ordres à un ordinateur. Il n'est pas censé être obscur, bizarre et plein de pièges subtils (ça ce sont les attributs de la magie). [Dave Small]
    • Un programme c'est un sort que l'on jette à un ordinateur et qui se transforme en messages d'erreur.
    • Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse.


    et ne sont pas des options...

  4. #4
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    pourquoi n'utilises tu pas nohup ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    nohup commande&
    echo $? > /var/run/commande.pid
    kill `cat /var/run/commande.pid`

    et le tour est joué
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  5. #5
    Membre habitué Avatar de ddams
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2002
    Messages : 147
    Points : 148
    Points
    148
    Par défaut
    Tout d'abord merci à tous pour vos réponses.

    Entre temps j'ai continué à chercher et suis tombé sur ce script bien sympathique : Je vais essayé de l'adapter à mes besoins.

    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
    29
     
    #!/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
    Pour info, la commande qui va bien est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    screen -ls |grep monScreen |awk -F . '{print $1}'|awk '{print $1}'
    (elle permet de récupérer le PID à partir du nom de screen)

    Je vais tester tout ça car il y a apparemment plusieurs solutions à mon problème. Je vais nottamment étudier les solutions pkill et nohup.

    merci encore.

    ps : je passe en résolu dès que ça marche chez moi.
    @+ddams

  6. #6
    Membre habitué Avatar de ddams
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2002
    Messages : 147
    Points : 148
    Points
    148
    Par défaut
    Voilà le script version finale :

    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="cstrikeWar"
     
    CMD="./srcds_run -game cstrike +maxplayers 14 +map de_cbble -port 27016 -tickrate 100 +servercfgfile serverWar.cfg"
     
    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
    Comme vous avez pu le voir la finalité du script était de pouvoir gérer facilement le démarrage et l'arrêt d'un serveur counter strike source.

    Peut-être que ça servira à quelqu'un d'autre...
    @+ddams

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment faire un splash screen pour son application?
    Par tscoops dans le forum C++Builder
    Réponses: 4
    Dernier message: 26/04/2007, 14h28
  2. Screen -> plane
    Par bleyblue dans le forum DirectX
    Réponses: 2
    Dernier message: 15/08/2004, 15h07
  3. affichage texte style splash screen
    Par scorbo dans le forum MFC
    Réponses: 4
    Dernier message: 13/06/2004, 12h03
  4. [DX9] Splash Screen
    Par delire8 dans le forum DirectX
    Réponses: 6
    Dernier message: 03/06/2004, 10h30
  5. affichage de controles sur un splash screen
    Par shrek dans le forum C++Builder
    Réponses: 3
    Dernier message: 20/11/2003, 19h59

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