web-dev-qa-db-fra.com

Comment puis-je exécuter une commande depuis le terminal sans la bloquer?

J'exécute beaucoup de programmes dans Ubuntu à partir du terminal, mais j'aimerais pouvoir continuer à utiliser le terminal après l'ouverture d'un programme. Comment puis-je mettre les programmes en arrière-plan afin de ne pas ouvrir une autre fenêtre?

38
Salvador Dali

Il existe différentes manières d'exécuter un programme de terminal et de continuer à utiliser le terminal:

  • Vous pouvez ouvrir un autre onglet de terminal (cliquez avec le bouton droit de la souris, puis sélectionnez "Ouvrir un nouvel onglet").
  • Vous pouvez ajouter & à la commande que vous exécutez. Sachez que vous ne verrez pas de texte sortir sur le terminal, tel que des messages d'erreur.
  • Vous pouvez taper Ctrl-Z puis exécutez bg. Cela a le même effet que d'exécuter command &
  • Vous pouvez exécuter Nohup command & puis appuyer sur entrée. (Merci à ccpizza , voir les commentaires ci-dessous.)

Cependant, en appuyant sur Alt-F2 puis exécuter votre commande à partir de l'interface graphique est généralement considéré comme la meilleure pratique - il n'y a pas de terminal du tout!

Notez qu'en utilisant & (et non Nohup), la fermeture du terminal mettra toujours fin à l'application, sauf si vous exécutez disown après .

EDIT: Il semblerait que l'utilisation de Nohup laisse parfois de petites excréments dans votre dossier personnel. Ce qui aurait normalement été connecté au terminal est apparemment sauvegardé dans un fichier dans ~ /.

~~

Un moyen simple d'exécuter un programme en arrière-plan est program-name & disown, qui vous dirigera vers un terminal qui peut être fermé sans tuer le processus.

54
WindowsEscapist

Vous pouvez utiliser setsid pour exécuter le programme dans une nouvelle session avec l'ajout de &>/dev/null afin de ne recevoir aucun message de journal.

Donc, ce serait comme

setsid program-name &>/dev/null

6
Rumid

Vous pouvez exécuter la commande avec a & after.

Par exemple:

Thunderbird &

Voir ici pour plus d'informations.

6
Viertaxa