web-dev-qa-db-fra.com

Garder un programme en marche dans le terminal

Je connais donc bien Nohup et les commandes suffixées avec & pour s’assurer qu’elles passent à l’arrière-plan.

Cependant, si j'exécute une application graphique, il semble parfois que ni l'une ni l'autre ne remplisse son rôle. Alors, que puis-je préfixer avec un programme/commande pour s'assurer qu'il continue à fonctionner après la fermeture du terminal?

8
Industrial

Si vous souhaitez que l'application continue à fonctionner lorsque vous fermez la fenêtre du terminal, procédez comme suit:

Nohup chromium-browser &

Vous avez besoin à la fois de Nohup et de &.

  • Nohup signifie que ce processus/cette commande doit rester actif après la fermeture du shell.
  • & signifie place ce processus/cette commande en arrière-plan afin qu’elle ne bloque pas le shell (pour que vous puissiez l’utiliser pour autre chose.
9
Mark

lorsque vous exécutez un programme en arrière-plan via l'opérateur &, il est toujours lié à votre session et peut être contrôlé avec fg, bg, jobs et désown.

J'ai également eu quelques problèmes avec Nohup, mais désavouer peut être ce que vous cherchez.

Lorsque vous exécutez un programme en arrière-plan, il possède un identifiant de travail:

gedit &
[1] 5647

Ce nombre entre parenthèses [] est intéressant. Pour le détacher de votre session, exécutez disown %n avec ce numéro. Pour l'exemple ci-dessus:

disown %1

Vous pouvez maintenant quitter le terminal en toute sécurité et le processus ne sera pas terminé.

5
Axel

Pour les applications graphiques, faire simplement quelque chose comme ça devrait marcher (du moins, ça marche pour moi)

chromium-browser&

Pour les applications de terminal, vous devriez utiliser quelque chose comme screen ou tmux.

2
jrg