Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/04/2011, à 23: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 :
1303420112.png


Des idées ?

Dernière modification par YannUbuntu (Le 21/04/2011, à 23:09)


à consulter/améliorer: Guide du Débutant, Logiciels, Ecole, Travail, Maison

Hors ligne

#2 Le 22/04/2011, à 00: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'

Hors ligne

#3 Le 22/04/2011, à 08: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

Hors ligne

#4 Le 25/04/2011, à 10: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, à 20:13

fabux

Re : Commande pour lancer un script dans un terminal ?

un lien vers ton script ? (ou du moins la partie visée)

Hors ligne

#6 Le 26/04/2011, à 07: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, à 07: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, à 14:21

Pylades

Re : Commande pour lancer un script dans un terminal ?

Salut,

Hizoka a écrit :

[…]
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, à 14: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, à 20: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 wink

Dernière modification par Josepe36 (Le 26/04/2011, à 20:58)


Développeur distribution Hybryde
www.hybryde.org

Hors ligne

#10 Le 27/04/2011, à 01:30

YannUbuntu

Re : Commande pour lancer un script dans un terminal ?

Merci a tous pour vos reponses

fabux a écrit :

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 .

Josepe36 a écrit :

pourquoi reinstaller grub ?

comme indiqué par mail, il s'agit d'une purge complete qui permet de reparer certains soucis de demarrage.

jeanjd63 a écrit :

As-tu tenté avec l'option --force-yes ?

bonne idee, je vais essayer.

Pylade a écrit :

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.

Josepe36 a écrit :

je pense qu il faut contourner le probléme, voici une solution :

pourquoi pas, mais c'est pas tres propre comme installation wink


à consulter/améliorer: Guide du Débutant, Logiciels, Ecole, Travail, Maison

Hors ligne

#11 Le 27/04/2011, à 06: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 wink


Développeur distribution Hybryde
www.hybryde.org

Hors ligne

#12 Le 27/04/2011, à 13: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, à 13: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, à 23: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.

- l'option text-info donne ce message d'erreur :
1303941065.png


à consulter/améliorer: Guide du Débutant, Logiciels, Ecole, Travail, Maison

Hors ligne

#14 Le 28/04/2011, à 00: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

Hors ligne

#15 Le 28/04/2011, à 00: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 28/04/2011, à 00:34)

Hors ligne

#16 Le 28/04/2011, à 01: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, à 01: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) ?

Hors ligne

#18 Le 28/04/2011, à 07: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, à 14: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

Hors ligne

#20 Le 29/04/2011, à 02:04

fabux

Re : Commande pour lancer un script dans un terminal ?

@Josepe36 : l'option force ne marche apparemment pas #13

Hors ligne

#21 Le 29/04/2011, à 06: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, à 08: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, à 20: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 wink


Développeur distribution Hybryde
www.hybryde.org

Hors ligne

#24 Le 29/04/2011, à 23: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, à 11: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