Attendre fin d'execut° d'1 cmd sur serveur !
Fermé
madeinloveyou
Messages postés
61
Date d'inscription
mercredi 6 mai 2009
Statut
Membre
Dernière intervention
22 avril 2010
-
3 juin 2009 à 09:33
madeinloveyou Messages postés 61 Date d'inscription mercredi 6 mai 2009 Statut Membre Dernière intervention 22 avril 2010 - 3 juin 2009 à 17:00
madeinloveyou Messages postés 61 Date d'inscription mercredi 6 mai 2009 Statut Membre Dernière intervention 22 avril 2010 - 3 juin 2009 à 17:00
A voir également:
- Attendre fin d'execut° d'1 cmd sur serveur !
- Cmd - Guide
- Chambre 1408 explication fin - Forum Cinéma / Télé
- Association avec le serveur freebox en cours ✓ - Forum Freebox
- Récupérer clé windows 10 cmd - Guide
- Cmd scannow - Guide
6 réponses
Char Snipeur
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 329
3 juin 2009 à 10:33
3 juin 2009 à 10:33
je ne comprends pas.
si tu met "./script.sh" le shell courant devrait attendre que le script se termine.
le lance tu bien sans le '&' à la fin ?
place un "echo FIN" à la fin de script.sh pour être sur qu'il n'est pas terminé.
Si ça se trouve ton script exécute une tâche en arrière plan, et c'est elle qui n'est pas terminé.
Comment lance tu la commande ssh ? si ça se trouve le problème peut venir de là.
Par exmple, pour exécuter des script, j'utilise ssh -t
si tu met "./script.sh" le shell courant devrait attendre que le script se termine.
le lance tu bien sans le '&' à la fin ?
place un "echo FIN" à la fin de script.sh pour être sur qu'il n'est pas terminé.
Si ça se trouve ton script exécute une tâche en arrière plan, et c'est elle qui n'est pas terminé.
Comment lance tu la commande ssh ? si ça se trouve le problème peut venir de là.
Par exmple, pour exécuter des script, j'utilise ssh -t
madeinloveyou
Messages postés
61
Date d'inscription
mercredi 6 mai 2009
Statut
Membre
Dernière intervention
22 avril 2010
3 juin 2009 à 10:53
3 juin 2009 à 10:53
Je me connecte par ssh de cette façon :
voici comment j'execute mes scripts :
voici l'essentiel de la classe :
Voilà tous ce qu'il faut savoir !!
mon probleme c qu'il n'y a rien dans le Line
alors qu'à la main mon script renvoie bien un nombre ???
try {
conn = new Connection("serveur");
conn.connect();
@SuppressWarnings("unused")
boolean isAuthenticated = conn.authenticateWithPassword
("login", "pass");
}
catch(IOException except) {
JOptionPane.showMessageDialog(null, except.getMessage(),
"Error", JOptionPane.ERROR_MESSAGE);
}
voici comment j'execute mes scripts :
// j'appel unne classe que j'ai créer => CommandeExterne
arg[0] =
("cd /projet/tours/jlgatti/ | megablast -i Input/"+
ficInput+" -d "+chemindb+" -D3 -p "+percent+
" -o Output/"+ficOutput);
cmdExt.Execute(arg,true,false);
voici l'essentiel de la classe :
public void Execute
(String []command, boolean connex, boolean R) {
Process p = null;
InputStream is = null;
try {
if(connex){ // si le script s'execute sur le serveur !
session = connection.openSession();
session.execCommand(command[0]);
s = session.getStdout();
if(session.getStdout().equals(null))
is = session.getStderr();
}
else { ... ... ... }
is = p.getInputStream();
}
if(R){ // s'il y a un résultat afficher par le script !
InputStreamReader isr = new InputStreamReader(is);
FileOutputStream fos = new FileOutputStream("results");
OutputStreamWriter w = new OutputStreamWriter(fos);
BufferedReader br = new BufferedReader(isr);
String line = null;
line = br.readLine();
try {
while (line != null){
if (line != null && !line.equals(" ") & !line.equals("\n")){
res[i] = line;
w.write(line);
w.write("\n");
i++;
}
line = br.readLine();
}
w.close();
Voilà tous ce qu'il faut savoir !!
mon probleme c qu'il n'y a rien dans le Line
alors qu'à la main mon script renvoie bien un nombre ???
Char Snipeur
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 329
3 juin 2009 à 11:06
3 juin 2009 à 11:06
désolé, je ne comprend pas trop ton programme.
Je trouve bizarre le tunnel entre cd et megablast...
Regarde si tu n'as pas des options de connexion qui pourrait te servir.
Je trouve bizarre le tunnel entre cd et megablast...
Regarde si tu n'as pas des options de connexion qui pourrait te servir.
madeinloveyou
Messages postés
61
Date d'inscription
mercredi 6 mai 2009
Statut
Membre
Dernière intervention
22 avril 2010
3 juin 2009 à 13:56
3 juin 2009 à 13:56
Que veut tu dire par : le lance tu bien sans le '&' à la fin ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Char Snipeur
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 329
3 juin 2009 à 14:29
3 juin 2009 à 14:29
il y a sur sh deux mode d'exécution : direct et en tâche de fond. En tâche de fond, tu exécute en parallèle un nouveau shell qui lira ton script (de manière concurrente). pour faire ça, il faut mettre un '&' à la fin de la ligne de commande. C'est tout.
madeinloveyou
Messages postés
61
Date d'inscription
mercredi 6 mai 2009
Statut
Membre
Dernière intervention
22 avril 2010
3 juin 2009 à 17:00
3 juin 2009 à 17:00
OK ba g pas de '&' donc c bon ??