#1 Le 15/11/2013, à 14:37
- hedward
[RESOLU]Récupérer un numéro de process
Bonjour,
Je souhaite faire qqch d'assez simple, mais mes connaissances en shell étant limitée, je n'y arrive pas.
Je cherche à établir une connexion à un serveur mysql en utilisant un tunnel SSH. J'ai donc deux commandes à taper :
Pour me simplifier la vie, j'ai fais un script qui contient les lignes suivantes :
#!/bin/sh
ssh -i /home/xxx/.ssh/id_dsa.pub -L 33060:mysql.distant:3306 loginssh@serveur.ssh -N &
sleep 2
mysql -u logmysql -P33060 -h 127.0.0.1 -D BDD -pXXXXX
Ce qui fonctionne correctement.
Par contre lorsque la connexion mysql se termine j'aimerai fermer le tunnel ssh. Or pour faire cela le seul moyen que j'ai trouvé c'est de faire un kill sur le process correspondant à cette connexion. Pour cela je fais un ps ax | grep ssh, je regarde le numéro et enfin je fais un kill -9 nnnn.
Ce que je voudrais c'est donc pouvoir récupérer le numéro de process correspondant au tunnel ssh et appeler le kill avec ce process à la fin de mon script.
La je ne vois pas du tout comment faire, mais j'ai le sentiment que c'est réalisable.
Mon sauveur se trouve t'il parmi vous ???
Merci d'avance
Dernière modification par hedward (Le 15/11/2013, à 15:19)
Hors ligne
#2 Le 15/11/2013, à 14:41
- serged
Re : [RESOLU]Récupérer un numéro de process
Et un :
killall ssh
ou un:
pkill ssh
Ne résoudraient pas ton problème ?
LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)
Hors ligne
#3 Le 15/11/2013, à 14:55
- hedward
Re : [RESOLU]Récupérer un numéro de process
Merci pour la réponse.
Cependant j'aimerai faire mieux.
En fait, à terme je vais avoir plusieurs scripts qui vont s'exécuter sur des bases différentes et donc avec des connexion ssh différentes. Donc je ne veux pas terminer tous les process ssh mais seulement celui qui vient de terminer sa connexion mysql.
Hors ligne
#4 Le 15/11/2013, à 15:03
- Postmortem
Re : [RESOLU]Récupérer un numéro de process
Salut,
#!/bin/bash
ssh -i /home/xxx/.ssh/id_dsa.pub -L 33060:mysql.distant:3306 loginssh@serveur.ssh -N &
process_ssh=$!
sleep 2
mysql -u logmysql -P33060 -h 127.0.0.1 -D BDD -pXXXXX
kill $process_ssh
Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »
Hors ligne
#5 Le 15/11/2013, à 15:15
- maxire
Re : [RESOLU]Récupérer un numéro de process
Salut,
une solution :
ssh -i /home/xxx/.ssh/id_dsa.pub -L 33060:mysql.distant:3306 loginssh@serveur.ssh -N & pid=$!
La variable pid 'appelle la comme tu veux', contient alors le process id de la commande que tu viens de lancer.
Tu peux alors faire kill -15 $pid.
[Edit] grillé par postmortem !
Dernière modification par maxire (Le 15/11/2013, à 15:16)
Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail
Hors ligne
#6 Le 15/11/2013, à 15:18
- hedward
Re : [RESOLU]Récupérer un numéro de process
super merci à vous deux, c'est exactement ce qu'il me fallait!!
Hors ligne