#1 Le 21/04/2011, à 22:09
- YannUbuntu
Commande pour lancer un script dans un terminal ?
Bonjour
J'ai une application Bash lancée depuis un lanceur (donc sans terminal), et je cherche le moyen, a partir de cette application, d'ouvrir un terminal (si possible compatible Gnome/KDE/etc..) dans lequel seraient exécutées ces commandes:
apt-get purge -y grub grub-pc grub-common
apt-get install -y grub-common grub-pc
A noter que ces commandes sont particulieres car elles font apparaitre une interface dans le terminal, de type :
Des idées ?
Dernière modification par YannUbuntu (Le 21/04/2011, à 22:09)
à consulter/améliorer: Guide du Débutant, Logiciels, Ecole, Travail, Maison
Hors ligne
#2 Le 21/04/2011, à 23:39
- fabux
Re : Commande pour lancer un script dans un terminal ?
Salut,
peut-être
xterm -e 'apt-get purge -y grub grub-pc grub-common'
May linux be with you
Comment poster un message.
Je me présente dans la doc
Hors ligne
#3 Le 22/04/2011, à 07:43
- Hizoka
Re : Commande pour lancer un script dans un terminal ?
xterm est souvent installé, mais je ne sais plus s'il est de base sous kubuntu...
mais il est vraiment pas mal.
sinon une verification de la variable $TERM (qui chez moi est sous xterm).
apres tu applique un case dessus...
pour konsole, xterm, gnome-terminal...
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
En ligne
#4 Le 25/04/2011, à 09:33
- YannUbuntu
Re : Commande pour lancer un script dans un terminal ?
Merci pour vos reponses.
Malheureusement je crois que ca ne regle pas mon petit soucis : la fenetre bleue n'apparait pas.
Je suis pour l'instant obligé de demander a l'utilisateur d'ouvrir un terminal et saisir la commande...
à consulter/améliorer: Guide du Débutant, Logiciels, Ecole, Travail, Maison
Hors ligne
#5 Le 25/04/2011, à 19:13
- fabux
Re : Commande pour lancer un script dans un terminal ?
un lien vers ton script ? (ou du moins la partie visée)
May linux be with you
Comment poster un message.
Je me présente dans la doc
Hors ligne
#6 Le 26/04/2011, à 06:06
- Josepe36
Re : Commande pour lancer un script dans un terminal ?
salut à tous
oui une idée, mais avant une question :
pourquoi reinstaller grub ?
Développeur distribution Hybryde
www.hybryde.org
Hors ligne
#7 Le 26/04/2011, à 06:43
- Compte anonymisé
Re : Commande pour lancer un script dans un terminal ?
Salut
As-tu tenté avec l'option --force-yes ?
apt-get purge --force-yes -y grub grub-pc grub-common
apt-get install --force-yes -y grub-common grub-pc
@+
#8 Le 26/04/2011, à 13:21
- Pylades
Re : Commande pour lancer un script dans un terminal ?
Salut,
[…]
sinon une verification de la variable $TERM (qui chez moi est sous xterm).
[…]
Non, $TERM n'indique pas le terminal par défaut de l'utilisateur, mais une termcap. Il n'existe pas d'émulateur de terminal standard (voir la discussion ici).
Pour les besoins de la démonstration, on va partir du principe que xterm et gksu sont installés.
As-tu essayé ceci ?
gksu xterm -e 'apt-get purge -y grub grub-pc grub-common; apt-get install -y grub-common grub-pc'
Dernière modification par Pylade (Le 26/04/2011, à 13:25)
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#9 Le 26/04/2011, à 19:49
- Josepe36
Re : Commande pour lancer un script dans un terminal ?
salut à tous
je pense que le probleme vien t du fait que l installation de grub-pc lance une interaction utilisateur avec un truc du genre "ncurse" que Yann souhaiterait éviter, pour celà je pense qu il faut
contourner le probléme, voici une solution :
### on prepare l arbo pour la manip
mkdir /tmp/archives/
mkdir /tmp/grub/
### on bind sur /var/cache/apt/archives/ pour ne recuperer que les .deb necessaires
mount --bind /tmp/archives/ /var/cache/apt/archives/
### l option -d ne fait que telecharger les .deb
apt-get install -d -y grub-common grub-pc
### on se place ici pour y recuperer les fichiers resultants de l exrtraction de nos .deb
cd /tmp/grub/
### ici on decompresse les .deb
for i in $(ls /var/cache/apt/archives/) ; do ar xv /var/cache/apt/archives/"$i" ; tar xvpzf data.* || tar xvpf data.*; rm *.gz *.lzma ;done
### ici on copie directement les fichiers extrait dans l arbo respective
for i in *;do cp -av $i/. /$i;done
### on enleve les anciens fichiers
rm -Rv /boot/grub/*
### on rajoute les nouveaux
cp -av /usr/lib/grub/i386-pc/. /boot/grub/
### on fait du nettoyage
umount /var/cache/apt/archives/
rm -R /tmp/archives/ /tmp/grub/
ps : je sais que ça ne resoud pas le probleme de la desinstallation, mais tu pourais envisager de stocker ces .deb recent dans l arbo de ton script car l installation des nouveaux fichiers effacerait les ancien , c est une piste a explorer je pense
Dernière modification par Josepe36 (Le 26/04/2011, à 19:58)
Développeur distribution Hybryde
www.hybryde.org
Hors ligne
#10 Le 27/04/2011, à 00:30
- YannUbuntu
Re : Commande pour lancer un script dans un terminal ?
Merci a tous pour vos reponses
un lien vers ton script ? (ou du moins la partie visée)
Le + simple si tu es sous Maverick est d'ajouter le PPA ppa:yannubuntu/boot-repair-dev , installer le paquet boot-repair-ubuntu , et tu trouveras le script dans usr/bin .
pourquoi reinstaller grub ?
comme indiqué par mail, il s'agit d'une purge complete qui permet de reparer certains soucis de demarrage.
As-tu tenté avec l'option --force-yes ?
bonne idee, je vais essayer.
As-tu essayé ceci ?
gksu xterm -e 'apt-get purge -y grub grub-pc grub-common; apt-get install -y grub-common grub-pc'
oui et ca ne fonctionne pas : message d'erreur comme quoi xterm ne doit pas etre lancé avec les droits admins.
je pense qu il faut contourner le probléme, voici une solution :
pourquoi pas, mais c'est pas tres propre comme installation
à consulter/améliorer: Guide du Débutant, Logiciels, Ecole, Travail, Maison
Hors ligne
#11 Le 27/04/2011, à 05:57
- Josepe36
Re : Commande pour lancer un script dans un terminal ?
jeanjd63 a écrit :
As-tu tenté avec l'option --force-yes ?
bien je crois que c est résolu avec ça Yann, ça m a l air d etre exactement ce qu il faut
Développeur distribution Hybryde
www.hybryde.org
Hors ligne
#12 Le 27/04/2011, à 12:19
- Christophe C
Re : Commande pour lancer un script dans un terminal ?
A vérifier, mais je pense qu'un
(
apt-get purge -y grub grub-pc grub-common
apt-get install -y grub-common grub-pc
) | zenity --text-info --width=800 --height=800
devrait faire quelque chose de correcte : le résultat des commandes s'affiche dans une fenetre zenity. Ce n'est pas un terminal, mais s'il s'agit juste d'avoir un affichage... Et c'est plus sympa, comme affichage.
Dernière modification par Christophe C (Le 27/04/2011, à 12:20)
BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».
Hors ligne
#13 Le 27/04/2011, à 22:51
- YannUbuntu
Re : Commande pour lancer un script dans un terminal ?
Je viens de tester ces deux propositions (--force-yes et text-info) , elles ne fonctionnent apparemment pas.
à consulter/améliorer: Guide du Débutant, Logiciels, Ecole, Travail, Maison
Hors ligne
#14 Le 27/04/2011, à 23:24
- Hizoka
Re : Commande pour lancer un script dans un terminal ?
je vois que c'est pour ton script g2s, utilise un terminal incorporé et lance tes commandes :
echo "TERM@@SEND@@sudo apt-get purge -y grub grub-pc grub-common && sudo apt-get install -y grub-common grub-pc\n"
sleep 0.2
# Si sudo en attente
if [[ $(pstree ${terminal_PID} | egrep "sudo") ]]
then
echo "Mot de passe root en attente dans le terminal !!"
while [[ $(pstree ${terminal_PID} | egrep "sudo") ]]; do sleep 0.2; done
echo "plus de mot de passe en attente"
fi
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
En ligne
#15 Le 27/04/2011, à 23:33
- mjdon
Re : Commande pour lancer un script dans un terminal ?
Je n'ai pas tout lu, mais on peut créer un lanceur qui exécute une application dans un terminal. Il suffit de choisir le type "Application in terminal" a la place de "Application". Le fichier plop.desktop créé est alors le suivant:
[Desktop Entry]
Version=1.0
Type=Application
Terminal=true
Icon[en_US]=gnome-panel-launcher
Exec=./plop.sh
Name[en_US]=plop
Name=plop
Icon=gnome-panel-launcher
dans lequel la 4ème ligne est celle qui nous intéresse ici. Je suis a coté de la plaque ou pas?
Dernière modification par mjdon (Le 27/04/2011, à 23:34)
Hors ligne
#16 Le 28/04/2011, à 00:12
- YannUbuntu
Re : Commande pour lancer un script dans un terminal ?
Merci pour vos reponses
@Hizoka : j'avais deja essayé, et les menus bleus n'apparaissaient pas.
@mjdon : je ne souhaite pas que mon logiciel s'execute tout le temps dans un terminal, donc un tel lanceur ne convient pas.
à consulter/améliorer: Guide du Débutant, Logiciels, Ecole, Travail, Maison
Hors ligne
#17 Le 28/04/2011, à 00:36
- fabux
Re : Commande pour lancer un script dans un terminal ?
Pas regardé ton script (en même temps je suis pas un pro) mais à tous hasard la fenêtre n'apparaitrait pas mais passerait de suite en arrière plan ?
avant de lancer l' apt-get tu arrives à voir le terminal s'ouvrir (genre mettre un sleep 120 dans l'ouverture du terminal au lieu de apt-get) ?
May linux be with you
Comment poster un message.
Je me présente dans la doc
Hors ligne
#18 Le 28/04/2011, à 06:05
- Josepe36
Re : Commande pour lancer un script dans un terminal ?
la solution de jean63 fonctionne ici !!!
qu est ce qui ne te convient pas Yann ?
Développeur distribution Hybryde
www.hybryde.org
Hors ligne
#19 Le 28/04/2011, à 13:42
- Hizoka
Re : Commande pour lancer un script dans un terminal ?
@Hizoka : j'avais deja essayé, et les menus bleus n'apparaissaient pas.
=> cela ne serait pas du à une taille trop petite du terminal ?
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
En ligne
#20 Le 29/04/2011, à 01:04
- fabux
Re : Commande pour lancer un script dans un terminal ?
@Josepe36 : l'option force ne marche apparemment pas #13
May linux be with you
Comment poster un message.
Je me présente dans la doc
Hors ligne
#21 Le 29/04/2011, à 05:36
- Josepe36
Re : Commande pour lancer un script dans un terminal ?
@fabux : je ne comprend pas car ici ça fonctionne et le message d erreur est douteux. avant de poster j ai scripter la proposition de jean63 et ça passe
Développeur distribution Hybryde
www.hybryde.org
Hors ligne
#22 Le 29/04/2011, à 07:04
- YannUbuntu
Re : Commande pour lancer un script dans un terminal ?
Je vais reverifier alors, merci.
Josepe, avais-tu bien les menus bleus (cf post #1) qui apparaissaient, et pouvais-tu valider tes choix ? as-tu bien lancé ton script via un lanceur sans terminal?
si oui, peux-tu stp refaire l'essai en ajoutant un chroot devant tes commandes, par exemple:
sudo mount .......
sudo chroot /mnt apt-get purge --force-yes -y grub grub-pc grub-common
while [[ -d /mnt/boot/grub ]]; do echo "La purge ne s est pas faite, valider votre choix dans le menu bleu"; sleep 3; done
à consulter/améliorer: Guide du Débutant, Logiciels, Ecole, Travail, Maison
Hors ligne
#23 Le 29/04/2011, à 19:08
- Josepe36
Re : Commande pour lancer un script dans un terminal ?
salut
oui Yann pas de soucis je fais ça des que j ai deux minutes, demain certainement, mais peut tu etre tres precis dans ce que tu veux exactement car je suis un peu flou là, je pensait que tu ne voulait pas de terminal mais que tout se passe en arriere plan (des fois je comprend rien lol ).
si tu veux un lanceur qui ouvre un terminal et permette l interction avec grub bien oui on peut faire ça, mais tout depend du resultat que tu veux au final
Développeur distribution Hybryde
www.hybryde.org
Hors ligne
#24 Le 29/04/2011, à 22:44
- YannUbuntu
Re : Commande pour lancer un script dans un terminal ?
Le but : purger GRUB (je ne sais pas 100% de ce que fait la commande purge, mais j'ai vu qu'elle supprime les paquets et les fichiers de conf, dont le dossier /boot/grub par exemple), puis le reinstaller.
Si on trouve une solution pour que ca se fasse en arriere-plan, ca serait parfait, mais actuellement de toutes les solutions que j'ai testees, la seule ou ca fonctionne c'est de dire a l'utilisateur:
- ouvrez un terminal
- saisissez la commande sudo chroot /mnt apt-get purge --force-yes -y grub grub-pc grub-common
- quand le menu bleu apparait , validez la purge dans ce menu.
Bref : le mieux que j'arrive a faire c'est prendre l'utilisateur par la main. L'ideal serait que mon logiciel fasse le boulot tout seul bien-sur.
et idem pour la reinstallation de grub.
à consulter/améliorer: Guide du Débutant, Logiciels, Ecole, Travail, Maison
Hors ligne
#25 Le 30/04/2011, à 10:27
- FRUiT
Re : Commande pour lancer un script dans un terminal ?
Y'a une astuce courante pour laisser un shell ouvert après un script mais dans le cadre des dialogues je ne sais pas si ça marcherait,
De rajouter :
$SHELL
A la dernière ligne du script en question.
Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean
Hors ligne