Ce sujet est résolu.
12 | |||
Auteur | Messages | ||
---|---|---|---|
jibi | #1 Posté le 29/12/2011 à 13:44:07 | ||
codergambas.jimdofree.com | Bonjour je lance un Process : SHELL "commande" FRO READ AS "Process" je récupère la sortie dans la SUb Process_Read() dans une textAerea Jusque là pas de souci Par contre si j'ai un retour de console avec demande d'intervention de l'utilisateur : Comment faire pour inter agir avec ce process qui demande une intervention utilisateur? Mis à part de remplacer le Process par une console Xterm par exemple, je ne vois pas comment? Y a t'il un composant console? avec DBusSignal peut être? Merci d'avance Jibi Debian GNU/Linux 11 64-bit | ||
linuxos | #2 Posté le 29/12/2011 à 15:40:14 | ||
Un peu de sel, de poivre et la crevette sera... | Bonjour, Lors de l'invocation d'une commande exterieure avec SHELL, pour interagir avec la commande invoquée il faut préciser le mot WRITE dans la ligne de la commande SHELL et utiliser un objet Process (ici Process1)
Voila, Olivier Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous. | ||
jibi | #3 Posté le 29/12/2011 à 16:01:25 | ||
codergambas.jimdofree.com | Merci Olivier je vais voir avec ça si je m'en sors Debian GNU/Linux 11 64-bit | ||
jibi | #4 Posté le 29/12/2011 à 17:15:28 | ||
codergambas.jimdofree.com | Voilà ce que j'ai :
si en textBox1 je met ls => ok ca me liste bien dans ma textAerea pareil avec un test avec kdesudo ls => c ok si je met kdesudo apt-get remove xterm => je n'ai aucun retour dans la textAerea même pas avant demande confirmation de suppression si j'enlève le Write dans For Read Write As "Process" j'ai bien un retour dans la textAerea mais là je ne peux pas entrer ma réponse puisque pas de Write? avec gksudo j'ai un retour mais lors de la demande de confirmationpar O/n , j'cris donc O ou N mais rien ne se passe => dans un terminal avec ps -aux le processus est toujours actif ! donc en attente de réponse O ou N => ne reçoit pas l'envoi de Print #Process1, TextBox2.Text Debian GNU/Linux 11 64-bit | ||
linuxos | #5 Posté le 29/12/2011 à 22:38:51 | ||
Un peu de sel, de poivre et la crevette sera... | Peux tu essayer d'ajouter '> 2&>1' a la fin de chaque commande que tu exécutes avec SHELL. On ne sait jamais, parfois certaine commande renvoie leur texte dans le canal 2 ou 3 de la console. Si cela ne change rien, peux tu essayer de faire la même chose en utilisant EXEC a la place de SHELL ? Attention avec la commande EXEC, il te faut découper toutes les options de ta commande dans un tableau de string (String[]) et faire attention car la commande EXEC execute directement une commande sans invoquer un terminal derrière, donc pas d'interprétation des caractères possible. Exemple de commande qui ne fonctionne pas avec EXEC: ls toto*.txt ; cd /tmp <= 2 commandes sur la même ligne ls *.txt | sort <= Utilisation du PIPE proscris Par contre: ls toto*.txt Enfin, regarde bien dans la documentation, il existe 2 façons d'utiliser chacune des commande SHELL et EXEC. SHELL "commande a executer" FOR READ WRITE AS "Process" SHELL "commande a executer" FOR INPUT OUTPUT AS "Process" EXEC ["commande","argument1","Argument2"] FOR READ WRITE AS "Process" EXEC ["commande","argument1","Argument2"] FOR INPUT OUTPUT AS "Process" En espérant avoir été clair. Olivier Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous. | ||
jibi | #6 Posté le 30/12/2011 à 12:26:55 | ||
codergambas.jimdofree.com | Bonjour Donc j'ai essayé toutes les façons possibles exec shell input output read write avec ou sans '> 2&>1' rien n'y fait Par contre avec input output cela est beaucoup plus fluide mais quand je veux entrer la réponse à la commande gksudo apt-get remove xterm qui est O ou N => pas de réponse . je dirais plutôt que ce n'est pas transmis au processus qui reste actif après vérificationEt quand je ferme le processus en console manuellement avec sudo kill n° de Process, j'ai un retour qui m'indique bien que le process est KILL puisque j'ai
D'autre part je ne comprend pas pourquoi la commande Kdesudo est très mal lue, en fait avec kdesudo la ponctuation se transforme en un charabia !! Ah au fait j'utilise Gambas3 SVN #4357 sous Kubuntu 10.04 LTS Debian GNU/Linux 11 64-bit | ||
linuxos | #7 Posté le 30/12/2011 à 13:11:53 | ||
Un peu de sel, de poivre et la crevette sera... | Erretum de ma part: c'est 2>&1 et pas 2&>1 Mais cela ne changera apparemment rien a ton problème, mais peux tu essayer tout de même pour éliminer cet possibilité. Tu peux vérifier aussi si lorsque tu lances la cmd 'kdesudo', le process ne se fork pas (fork: il se dédouble ou change de n° de process). Je ne peux pas le faire, je n'utilise pas KDE mais Gnome. Si au bout du compte, rien n'y fait, cela veut peut être dire que la commande 'Kdesudo' est pas très bien écrite et ne renvoie pas des données standard. Olivier Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous. | ||
jibi | #8 Posté le 30/12/2011 à 13:24:21 | ||
codergambas.jimdofree.com | Re Bon, pour kdesudo, c'est une chose! a priori c'est un problème de utf ou qqchose comme çà! mais même avec gksudo cela ne fonctionne pas Pourtant, comme tu le dis toi même et dans tous les exemples que j'ai pu voir, on peut répondre à une commande si elle demande une réponse? as tu pu voir l'exemple de gambas si chez toi c'est pareil? merci encore de ta disponibilité Linuxos jibi Debian GNU/Linux 11 64-bit | ||
jibi | #9 Posté le 30/12/2011 à 18:39:06 | ||
codergambas.jimdofree.com | j'ai testé sous Ubuntu avec gnome c'est la même chose, de même pour l'exemple gambas console (avec les droits écrire et lire) donc a priori pas possible de répondre par un process avec input output ou read write si qqun à une idée merci à vous tous Debian GNU/Linux 11 64-bit | ||
linuxos | #10 Posté le 30/12/2011 à 18:49:48 | ||
Un peu de sel, de poivre et la crevette sera... | SI je pense que c'est possible. Je testerai demain quand j'aurais plus de temps. Chez moi ça marche, donc il n'y a pas de raison. Olivier Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous. | ||
jibi | #11 Posté le 30/12/2011 à 19:18:12 | ||
codergambas.jimdofree.com | re voilà j'ai mis mon projet de test console en téléchargement ici : http://codergambas.jimdo.com/codes-sources-en-gambas3/utilitaire/consoletest/ si cela peut t'être utile Bon réveillon Debian GNU/Linux 11 64-bit | ||
jibi | #12 Posté le 1/1/2012 à 20:54:38 | ||
codergambas.jimdofree.com | Bonjour J'ai testé avec sudo à la place de Kdesudo ou Gksudo: Ne pouvant pas entrer le pwd de sudo en mode graphique, j'ai enregistré un temps de validité du pwd de 30 mn pour mes essais et là, et bien cela fonctionne très bien ! => le seul hic c'est que avec sudo, si le temps de validité du pwd est null comme cela est par défaut chez moi, je suis bloqué : pas possible d'entrer le pwd J'ai donc testé sous Ubuntu et Kubuntu Kubuntu la demande de mot de passe de sudo ne s'affiche pas dans la textaera Ubuntu la demande de mot de passe de sudo s'affiche dans la textaera => problème résolu sous Ubuntu, le mot de passe peut être entré avec sudo si je ne me sers pas de Gksudo Pourquoi l'un Ubuntu et pas l'autre Kubuntu? ==> Gksudo ou kdesudo Cela ne fonctionne pas avec ces 2 commandes graphiques, la réponse au processus ne peut être entrée En tout cas, uniquement chez moi d'après ce que j'ai pu comprendre Mais alors..... Telle est la question : pourquoi? Debian GNU/Linux 11 64-bit | ||
linuxos | #13 Posté le 1/1/2012 à 21:57:25 | ||
Un peu de sel, de poivre et la crevette sera... | Pourquoi tu ne peux pas entrer le mot de passe en graphique, il te suffit d'un formulaire avec un TextBox + l'option Password = True et le tour est jouer ? Olivier Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous. | ||
jibi | #14 Posté le 1/1/2012 à 22:01:39 | ||
codergambas.jimdofree.com | Ce n'est pas le mot de passe que je ne peut entré en mode graphique(kdesudo ou gksudo), puisque j'ai bien la fenêtre Linux adéquate qui s'ouvre avec Gksudo ou Kdesudo, si la commande entrée telle que Gksudo apt-get remove xterm demande une réponse, dans ce cas j'ai beau entrer O ou N, le processus reste en attente, l'entrée par print ne lui arrive pas Debian GNU/Linux 11 64-bit | ||
jibi | #15 Posté le 1/1/2012 à 22:15:07 | ||
codergambas.jimdofree.com | Y aurait il un rapport avec ma version de gambas3 car sous Kubuntu je suis avec Gambas3 SVN #4357 sous Kubuntu 10.04 LTS => la demande de mot de passe ne s'affiche pas dans la textaera avec Ubuntu je suis avec la version gambas3 2.99.3 NON svn sous ubuntu 10.10 => la demande de mot de passe s'affiche dans la textAera et cela avec le même projet Debian GNU/Linux 11 64-bit | ||
12 |