44 votes

Je ne peux pas utiliser le terminal tant que la commande gedit est en cours d'exécution

J'ai récemment installé 12.04.
Quand j'essaie de modifier un fichier avec gedit, je ne peux pas utiliser le terminal tant que je n'ai pas fermé le fichier en cours d'édition ou que j'ai ouvert un nouveau terminal. Mais je ne pense pas avoir eu ce problème avec 11.04, cependant je n'en suis pas sûr.
Y a-t-il un moyen d'éviter cela et d'utiliser le même terminal tout en éditant des fichiers.

82voto

Alaa Ali Points 29075

Réponse courte

Dans le terminal non réactif :

  1. Appuyez sur Ctrl+Z.
  2. Tapez bg et appuyez sur entrée.
  3. Tapez disown et appuyez sur entrée.

Réponse longue

Dans le terminal non réactif, appuyez sur Ctrl+Z, cela va "mettre en pause" le processus (ou "job") et vous rendre le contrôle de la console. Cependant, vous remarquerez que gedit devient non réactif et vous ne pouvez pas l'utiliser.

Supplémentaire : si vous le souhaitez, vous pouvez exécuter la commande jobs, vous verrez qu'elle affichera Stopped pour la commande gedit, c'est pourquoi vous ne pouvez pas l'utiliser.

Pour que le job s'exécute avec succès en arrière-plan (c'est-à-dire rendre gedit réactif à nouveau), exécutez la commande bg (signifiant background). Vous pourrez maintenant utiliser gedit, tout en ayant toujours l'invite de commande pour vous.

Supplémentaire : maintenant, si vous exécutez la commande jobs, vous verrez qu'elle affichera Running.

Vous pouvez contourner tout cela dès le départ. Lorsque vous lancez gedit depuis le terminal, ajoutez un & à la fin de la commande, donc quelque chose comme ceci gedit /chemin/vers/fichier &. Cela lancera gedit en arrière-plan dès le départ (vous devrez peut-être appuyer sur Entrée quelques fois pour récupérer le contrôle de la console).

Supplémentaire : si vous suiviez ces notes supplémentaires, vous avez peut-être remarqué que la deuxième fois que vous avez fait jobs, vous avez pu voir que bash avait ajouté un & à la fin de la commande gedit.

Une fois que vous aurez pris l'habitude de ce système, vous remarquerez que si vous fermez le terminal, gedit se terminera également, sans même de boîte de dialogue de confirmation. Pour éviter que cela ne se produise, exécutez disown, ce qui détachera le processus gedit du terminal, le supprimant de la liste renvoyée par jobs.

49voto

david6 Points 14408

Il suffit de taper :

gedit &

Cela vous ramènera immédiatement à l'invite de commande.

25voto

Braiam Points 64282

Vous pouvez utiliser le nohup pour éviter que l'interface graphique ne soit attachée à un terminal :

nohup mupdf some.pdf &

Cela vous permettra de fermer le terminal à partir duquel vous lancez, sans que le programme ne se ferme.

Vous devez également noter que la commande nohup créera un fichier avec la stdout et la stderr de la commande que vous exécutez. Si vous voulez éviter cela, ajoutez >/dev/null avant le &.

nohup mupdf some.pdf >/dev/null &

19voto

jmathew Points 291

Vous pouvez également utiliser la commande disown. C'est particulièrement utile lorsque vous avez déjà lancé le processus que vous ne voulez plus attacher au terminal.

La procédure de base, si je me souviens bien, ressemble à ceci :

$ > firefox      #Oops
Ctrl + z         #Mettre le processus en pause
$ > bg           #Envoyer le processus à l'arrière-plan
$ > disown       #Détacher le processus le plus récemment lancé ou arrêté
$ > exit         #Terminal fermé !

Remarquez que disown est spécifique à bash.

Cet article de blog explique assez bien les deux méthodes.

Page de manuel pour disown

13voto

Radu Rădeanu Points 156862

De man gedit:

-b, --background
         Exécute gedit en arrière-plan.

Ainsi, si vous exécutez gedit avec l'option -b, il démarrera en arrière-plan:

gedit -b [NOM-FICHIER]

De plus, vous pouvez créer un alias pour gedit -b (voir ici comment créer un alias permanent):

alias gedit='gedit -b'

Désormais, à l'avenir, vous pourrez utiliser gedit [NOM-FICHIER] normalement et il démarrera en arrière-plan.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X