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 11/12/2011, à 22:16

angelbracker

[RESOLU]Fermer console après lancement application graphique

Bonjour à tous!
Je vous explique mon problème:
Je lance beaucoup mes application via la console car plus rapide et cela m'entraîne à l'utilisée.
J'arrive a mettre le processus en tache de fond mais je n'arrive pas à faire fermer la console après le lancement de cette appli.
Exemple avec nav.sh:

#!/bin/bash
$chromium-browser
exit
$nav.sh

(chromium-browser:8612): Gtk-WARNING **: Impossible de trouver le moteur de thème dans module_path : « pixmap »

(chromium-browser:8612): Gtk-WARNING **: Impossible de trouver le moteur de thème dans module_path : « pixmap »

(chromium-browser:8612): Gtk-WARNING **: Impossible de trouver le moteur de thème dans module_path : « pixmap »

(chromium-browser:8612): Gtk-WARNING **: Impossible de trouver le moteur de thème dans module_path : « pixmap »
Nouvelle fenêtre ouverte dans la session du navigateur

La sa bloque plus de retour sur:

$

Dernière modification par angelbracker (Le 16/12/2011, à 10:33)

Hors ligne

#2 Le 11/12/2011, à 23:24

Spitfire 95

Re : [RESOLU]Fermer console après lancement application graphique

#!/bin/bash
chromium-browser
exit 0

Le $ me semble superflu. Pour exit en shell c'est exit 0 comme en C pour dire que le programme se quitte sans erreur (du moins je crois je connais pas trop le sh).


Trisquel GNU/Linux 6.0 / Fedora 19 & rawhide.
joueur ryzom et wesnoth
Développeur livewallpaper
Membre déserteur et traître de la brigade des S.

Hors ligne

#3 Le 11/12/2011, à 23:59

Levi59

Re : [RESOLU]Fermer console après lancement application graphique

pour lancer un programme en console sans perdre la main sur celui ci :

Monprogramme &

Hors ligne

#4 Le 13/12/2011, à 10:43

angelbracker

Re : [RESOLU]Fermer console après lancement application graphique

Désolé pour le & je me suis trompé lors de la recopie.
Exit et exit 0 ont le même effet sur le terminal mais pas sur le programme.
Une fois le programme terminé le exit ou exit 0 ne sort pas du terminal
.

Hors ligne

#5 Le 16/12/2011, à 04:57

Postmortem

Re : [RESOLU]Fermer console après lancement application graphique

Salut,
Si tu veux que ton terminal se ferme suite au lancement de chromium-browser, met ceci dans ton fichier nav.sh :

#!/bin/bash
nohup chromium-browser &
PROCESS_PARENT=$(ps -p $$ -o ppid=)
[[ $(ps -p $PROCESS_PARENT -o comm=) = bash ]] && kill -1 $PROCESS_PARENT

Dernière modification par Postmortem (Le 16/12/2011, à 04:57)


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#6 Le 16/12/2011, à 10:01

angelbracker

Re : [RESOLU]Fermer console après lancement application graphique

Salut, et merci pour ton script mais mon terminal ne se ferme toujours pas ...
et avec le kill -l ROCESS_PARENT sa me créer une erreur

bin/nav.sh: ligne 4 : kill: 17742 : indication de signal non valable

Hors ligne

#7 Le 16/12/2011, à 10:26

Vlam

Re : [RESOLU]Fermer console après lancement application graphique

Salut ! Juste pour formaliser un peu le problème, là tu veux détruire le processus parent de celui qui lance le script, qui lui même lance "chromium-browser".
Petit dessin de l'arbre des processus ;
__Terminal
    |___ sh
           |___chromium
Le nohup & à pour effet de détacher chromium de cette arborescence, ce qui te permet de tuer ses pères sans tuer ce processus.
Le exit à pour effet de quitter le script (processus "sh").
Pour tuer le Terminal il faut récupérer son "pid" et faire un "kill" dessus.

Clairement je vois quatres solutions à ton problèmes, pour pouvoir lancer ton script :

  1. Tu lances ton script (nav.sh) depuis un lanceur (alt+F2 par exemple ou encore gnomeDO, synapse, ...etc).

  2. Tu attribues un raccourcis clavier à ton script dans ton Window Manager. Donc tu lanceras nav.sh avec un raccourci clavier (autant attribuer directement le raccourci à chromium)

  3. Tu fais un script qui récupère le pid du processus Terminal et qui le tue (solution de Postmortem à adapter)

  4. Tu gardes systématiquement ton terminal ouvert dans un coin et tu le fermes à la main s'il te gène (c'est ce que je ferais pour apprendre à utiliser la console wink)

Bref, tout ça pour dire que, d'après ma modeste expérience, bien que ta démarche soit très louable, elle s'éloigne un peu de l'utilisation habituelle de la console smile
En espérant t'avoir aider un peu .


« Doutez de tout et surtout de ce que je vais vous dire. »

Hors ligne

#8 Le 16/12/2011, à 10:33

angelbracker

Re : [RESOLU]Fermer console après lancement application graphique

Salut Vlam!!

Merci pour toute ces astuces!!!
Je pense que sur les 4 je vais en utiliser 3:
-La 1er mais dans ce cas je lancerai directement chromium.
-La 3eme juste pour le fun et apprendre à coder et un peu de language
-La 4eme quand je serai dans le terminal pour coder ou autre et que j'ai besoin de faire des recherches.

Hors ligne

#9 Le 16/12/2011, à 11:06

pingouinux

Re : [RESOLU]Fermer console après lancement application graphique

Salut,

angelbracker #6 a écrit :
avec le kill -l ROCESS_PARENT sa me créer une erreur

En fait, c'est :

kill -1 $PROCESS_PARENT

Voir Postmortem #5

Dernière modification par pingouinux (Le 16/12/2011, à 11:09)

Hors ligne

#10 Le 16/12/2011, à 11:09

angelbracker

Re : [RESOLU]Fermer console après lancement application graphique

Excuses moi je me suis planté sur la recopie sur le site.
Dans nav.sh je l'ai bien inscrit.

Hors ligne

#11 Le 16/12/2011, à 14:18

Postmortem

Re : [RESOLU]Fermer console après lancement application graphique

Le script que j'ai indiqué tue la session bash qui a lancée nav.sh. Cela a pour effet de fermer la fenêtre gnome-terminal. Cela fonctionne si on est dans ce cas :

gnome-terminal
|__bash
   |__nav.sh

Après, si dans ton terminal tu as fait, par exemple, un su - user ou si tu as lancé une autre instance de bash, et qu'ensuite tu as lancé nav.sh, ça ne fermera par le terminal :

gnome-terminal
|__bash
   |__bash <== Cette instance de bash est tuée, on retourne donc dans celle du dessus, le terminal n'est donc pas fermé
      |__nav.sh

Je n'ai pas choisi de tuer gnome-terminal car cela fait fermer toutes les fenêtres de gnome-terminal ouvertes.

Edit :
Dans mon script, c'est kill -1 (c'est le chiffre un et non la lettre L en minuscule)

Dernière modification par Postmortem (Le 16/12/2011, à 14:19)


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#12 Le 19/12/2011, à 03:17

angelbracker

Re : [RESOLU]Fermer console après lancement application graphique

Oui sa marche beaucoup mieux avec -1!!
Merci

Hors ligne