Précédent   Forum des professionnels en informatique > Systèmes > Linux > Système
Système Vos questions autour de l'administration système
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/07/2006, 20h46   #1
Membre habitué
 
Avatar de ddams
 
Inscription : mars 2002
Messages : 148
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mars 2002
Messages : 148
Points : 111
Points : 111
Envoyer un message via MSN à ddams
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 :
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 :
kill `screen -ls |grep monScreen`
Quelqu'un aurait-il la solution ?

merci d'avance
__________________
@+ddams
ddams est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2006, 20h51   #2
Membre régulier
 
Avatar de _kal_
 
Étudiant
Inscription : janvier 2006
Messages : 166
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2006
Messages : 166
Points : 79
Points : 79
Envoyer un message via MSN à _kal_
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 :
1
2
 
ps aux | grep <nom_processus>
_kal_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2006, 20h52   #3
Membre régulier
 
Avatar de Goldocrack
 
Inscription : novembre 2002
Messages : 120
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : novembre 2002
Messages : 120
Points : 83
Points : 83
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 :
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
Goldocrack est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2006, 21h08   #4
Rédacteur/Modérateur
 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur Système
Inscription : décembre 2005
Messages : 9 774
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Ingénieur Système
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 774
Points : 14 303
Points : 14 303
pourquoi n'utilises tu pas nohup ?

Code :
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
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2006, 21h18   #5
Membre habitué
 
Avatar de ddams
 
Inscription : mars 2002
Messages : 148
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mars 2002
Messages : 148
Points : 111
Points : 111
Envoyer un message via MSN à ddams
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 :
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 :
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
ddams est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2006, 21h39   #6
Membre habitué
 
Avatar de ddams
 
Inscription : mars 2002
Messages : 148
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mars 2002
Messages : 148
Points : 111
Points : 111
Envoyer un message via MSN à ddams
Voilà le script version finale :

Code :
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
ddams est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h34.


 
 
 
 
Partenaires

Hébergement Web