Aide ssh2

SpheX
Invité n'ayant pas de compte PHPfrance

26 sept. 2012, 15:00

Bonjour,

Je poste ici car je bloque.
	$stop = "screen -dr " .$name. " -X quit";
	$stream = ssh2_exec($shell, $stop);
Le code ci-dessus doit lors du clic d'un utilisateur fermer un screen référencé par un nom contenu dans name.
En soit le code fonctionne cependant si deux noms de screen se ressemblent trop le screen n'est pas killer.

Les nom des screens ont tous le même format: (server1, server2, server3, server4, server5, server6, server7, server8, server9, server10)
Le problème se produit si le screen server1 et server10 sont lancés simultanéments, je peux kill le server10 mais pas le server1...

Si quelqu'un à une idée pour pallier à ce problème?

Cordialement,
SpheX

ViPHP
xTG
ViPHP | 7331 Messages

26 sept. 2012, 15:16

Cela ne viendrai pas plutôt d'un problème avec la commande screen ?
Essaies dans une console en local.

SpheX
Invité n'ayant pas de compte PHPfrance

26 sept. 2012, 15:19

Oui c'est le même problème en mode console. Mais ce n'est pas un bug de screen juste une sorte d'auto tabulation.

Je cherche juste une solution annexe, par exemple récupérer les id derrière le nom du screen. On peux par exemple surement demander le retour de la commande screen -ls puis analyser les informations?

ViPHP
xTG
ViPHP | 7331 Messages

26 sept. 2012, 15:49

Si tu as le même problème via une console tu ne pourras jamais régler le problème à moins de trouver le solution en mode console.
ssh2_exec (et toutes les fonctions du même type) ne font qu'un appel à la console.

Bref, ce n'est pas un problème de PHP mais système.

SpheX
Invité n'ayant pas de compte PHPfrance

26 sept. 2012, 16:25

Tu ma mal compris. Actuellement je n'essaye d'accéder au screen que par son nom car je ne peux pas récupérer le réel nom(1234.server1) par exemple.
Je voudrais le récupérer en PHP les 4 chiffres ou plus qui sont derrière le nom.

ViPHP
xTG
ViPHP | 7331 Messages

26 sept. 2012, 16:41

C'est tout à fait possible si la commande screen -ls comme tu l'as dit retourne cette liste.
Il faut cependant retourner le retour de la commande dans un fichier car les retours des commandes PHP ne prennent que la dernière ligne de la console.
Puis il te suffit de traiter le fichier obtenu pour extraire l'information.

SpheX
Invité n'ayant pas de compte PHPfrance

26 sept. 2012, 19:04

D'accord, et saurais tu me sortir un code PHP qui le ferais? Car je suis pas vraiment familier avec ça...
Désolé de faire mon assisté mais je ne trouve rien qui m'aiguillerais sur ce point, surtout pour après lire et récupérer les chiffres dont je te parle.

SpheX
Invité n'ayant pas de compte PHPfrance

28 sept. 2012, 11:56

Je recherche toujours une solution :S