Contenu | Rechercher | Menus

Annonce

Ubuntu-fr.org recrute toujours de nouveaux modérateurs, avec de l'expérience.

Ubuntu 16.04 LTS
Commandez vos DVD et clés USB Ubuntu-fr !

Si vous avez des soucis pour rester connecté, déconnectez vous et reconnectez vous depuis ce lien en cochant le case
Me connecter automatiquement lors de mes prochaines visites.

#1 Le 15/11/2013, à 15: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 ??? wink

Merci d'avance

Dernière modification par hedward (Le 15/11/2013, à 16:19)

Hors ligne

#2 Le 15/11/2013, à 15: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 ?


Linux-Mint Rosa 64 (Cinnamon) sur ASUS F2A55/AMD A8-5600K APU

Hors ligne

#3 Le 15/11/2013, à 15: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, à 16: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

Trusty Tahr (64 bits)

Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#5 Le 15/11/2013, à 16: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, à 16:16)


Maxire
Archlinux/Mate + Windows 10 Entreprise + Ubuntu 10,04 sur portable -- Archlinux/Mate sur poste de travail +  LTSP Debian 8 en VM, UbuntuMate 15.04 en VM, Windows 10 en Vm,  Windows XP en VM

Hors ligne

#6 Le 15/11/2013, à 16: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