J'essaie de lancer un programme depuis le terminal de telle sorte que les événements suivants se produisent:
Voir man Nohup
:
NAME
Nohup - run a command immune to hangups, with output to a non-tty
Répondre:
Nohup program-name &
Je pense que ce serait le moyen le plus complet:
program-name </dev/null &>/dev/null &
disown %%
Désavouer le processus en arrière-plan signifie que le shell ne le suivra plus. Il ne vous dira pas quand c'est fait. Cela ne vous empêchera pas de fermer votre Shell. %%
signifie "le dernier travail en arrière-plan".
Si vous voulez masquer tous les détails, mettez une fonction comme celle-ci dans votre .bashrc
launch_and_forget () { "$@" </dev/null &>/dev/null & disown %%; }
Ensuite
launch_and_forget program args "args args" ...
Donnez un nom qui a du sens pour vous.
Vous pouvez très simplement utiliser setsid
: -
NAME
setsid - run a program in a new session
SYNOPSIS
setsid program [arg...]
DESCRIPTION
setsid runs a program in a new session.
Essayez la commande suivante: -
setsid <command>
Exemple: - setsid gedit
, setsid nautilus ~/Downloads/
etc.
Utilisez tmux
.
Lancez d'abord tmux
, puis lancez la commande de votre choix. Vous pouvez fermer la fenêtre tmux
ou revenir en arrière par le raccourci CTRL-B D
. En fait, vous pouvez même rattacher plus tard par tmux attach
.
Je recommanderais soit tmux , comme Siyuan Ren suggéré, ou écran GN . De cette façon, vous obtenez un nouveau terminal pour votre commande. Vous pouvez le détacher et l'oublier, mais vous pouvez revenir si vous changez d'avis.
J'ai ramassé, et continue à utiliser ...
(Nohup program-name 2>/dev/null &)