Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
pb sur lancement d'un script
Envoyé par: mtiburs

Bonjour,

J'ai installé VirtualBox sur machine qui me sert de serveur de machines virtuelles, c'est une Ubuntu 11.04 (la plupart du temps je reste sur GDM mais avec toutefois la possibilité de lancer LXDE).
... et j'ai, plusieurs postes en Ubuntu 11.04 aussi qui me servent de station clientes (généralement sous GNOME).
Je me connecte aux machines virtuelles (une dizaine en XP-pro) car j'utilise un logiciel spécifiquement écrit pour Windows, ou pour moi en Linux (test de distribution juste pour 'voir') ou Freebsd.
L'idée est de pouvoir me connecter depuis une station (en cliquant sur une icône), cette action devra démarrer la machine virtuelle désirée et ensuite lancer tsclient pour afficher celle-ci par RDPv5.

J'ai presque réussi à faire ce que je voulais mais je butte sur une chose, je vous explique ce que j'ai pondu:

1- le clic sur l'icône lance un script "lance_vm1.sh"
celui-ci contient 2 programmes: le démarreur et la connexion:

script lance_vm1.sh:
./connecte_vm1.sh & ./demarre_vm1.sh

script demarre_vm1.sh:
ssh utilisateur@192.168.1.211 './lance_mvirt1.sh &'
(pour info, la connection se fait sans mot de passe)
ce programme est validé et lance bien la vm sur le serveur de vm.

script connecte_vm1.sh:
cpt=20;
echo "Lancement en cours";
while [ $cpt -gt 0 ]
do
clear;
echo "Attente "$cpt" secondes";
sleep 1;
let cpt=$cpt-1;
done
rdesktop -k fr -5 -f 192.168.1.211:3396;

J'ai fais 2 programmes lancés parallèlement parce que le premier ne me rend pas la main, j'ai essayé de mettre un & à la fin, mais ça ne fais rien du tout.
Je lance donc le démarrage de la machine virtuelle (ça, ça marche bien) et ensuite, je pensais qu'au bout de 20 secondes j'aurais mon tsclient qui démarre (le but étant d'afficher le temps qui découle pour éviter aux "cliqueurs fous" de martyriser leur souris en marmonnant des trucs bizarres dès les premières secondes).
Là, l'écran arrive en plein écran et la personne se retrouve devant un poste qui fonctionne très bien.

Le problème est le suivant ... bin ça décompte rien ! le programme se termine immédiatement comme si de rien n'était !. Si je le lance à la main depuis un terminal, ça marche très bien.
Je butte sur ça, c'est peu de chose, mais j'y comprends plus rien et j'essaye des tas de façons différentes et c'est toujours pareil: lancé à la main mon décompte se fait et ça se connecte, et lancé par un script ça bloque.

ça me serait très utile, car ce genre de script me permettrait de lancer toute sorte de chose facilement et à la demande, le but ultime sera de faire ceci depuis une page web hébergé sur mon freenas (en pouvant voir le status de la vm et du serveur de vm), mais ça c'est pour plus tard.

Donc, voilà mon soucis, un simple script qui ne veut afficher les secondes et qui du coup ne lance pas tsclient.

Poste le Tuesday 20 September 2011 13:34:49
Répondre     Citer    
Re: pb sur lancement d'un script
Envoyé par: merlin8282

Tu dois pouvoir faire tout ça dans un seul script. Essaye ceci :

ssh utilisateur@192.168.1.211 '~/lance_mvirt1.sh' &

cpt=20
echo "Lancement en cours"

while [ $cpt -gt 0 ]; do
  clear
  echo "Attente $cpt secondes"
  sleep 1
  let cpt=$cpt-1
done

rdesktop -k fr -5 -f 192.168.1.211:3396

Sachant que "Lancement en cours", tu ne le verras quasiment pas, puisque le clear vient tout de suite après.

Après, ton shell qui lance les programmes quand tu cliques sur une icône n'est peut-être pas le même que celui de ta console (normalement /bin/bash ou /bin/sh, voire /bin/dash).

.:! L'être humain est au sommet de la chaîne alimentaire. Certes. Mais il est surtout au sommet de la connerie et de la bêtise... !:.
-- Pour les nouveaux linuxiens : Ce n'est pas en continuant de faire ce que l'on connaît que l'on pourra faire ce que l'on ne connaît pas --

Poste le Wednesday 5 October 2011 13:59:38
Répondre     Citer    
Re: pb sur lancement d'un script
Envoyé par: mtiburs

Salut,

Excuse moi pour ma réponse tardive, je pensais être informé des réponses dans ma messagerie et j'avais perdu espoir (des fois on est un peu bête;-)

Donc, pour en revenir à ta réponse, merci, c'est super ça marche impec, je peux démarrer la machine virtuelle qui m'intéresse à la demande. Mon serveur peut même rester en mode texte.

Il me resterait un dernier truc à faire c'est by-passer les 20 secondes si la machine virtuelle était déjà lancée, mais là je ne sais pas trop comment faire, il faudrait que je puisse faire un "vboxmanage list runningvms" à distance pour savoir si la machine concernée est déja lancé, je ferais alors un test sur la réponse et je lancerais juste rdesktop pour avoir l'affichage.

En tout cas, un grand merci pour ta réponse, c'est vraiment super !

Marc T.

PS: cette fois j'ai activé l'info des réponses par mél ;-)

Poste le Sunday 16 October 2011 17:57:44
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
pb sur lancement d'un script
Un problème avec une commande du shell ? Comment utiliser la crontab ? Vous avez des soucis pour la gestion réseau sous Linux ? Pour vous la gestion des utilisateurs/groupes est du chinois ? Etc... Posez donc vos questions ici.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons