OK je suis nouveau à cela. J'ai installé tmux
pour exécuter une expérience de plusieurs jours. Après avoir tapé, tmux new -s name
j'ai eu une nouvelle fenêtre avec une bannière verte en bas. Je compile et exécute le programme java. Maintenant, je ne sais pas comment sortir de la fenêtre (tout en la laissant en marche). Le curseur bash (ou autre) ne répond pas car le programme java est toujours en cours d'exécution. Ma solution jusqu'ici consiste à quitter complètement le programme Terminal et à le rouvrir à nouveau. Des idées sur la façon de quitter la fenêtre tmux sans quitter tout le programme Terminal?
81
man tmux | less -p detach
Réponses:
Détacher de la session actuellement attachée
Session
Ctrl+ b dou Ctrl+b
:detach
Écran
Ctrl+ a Ctrl+ dou Ctrl+a
:detach
la source
tmux attach
pour entrer dans la session ouverte à nouveau après vous reconnecter.ENTER ~ .
Cela semble plus agréable.Les réponses précédentes sont incomplètes, je crois. La
:detach
seule chose à faire est de fermer les fenêtres qui affichent l’activité tmux. Cependant, tmux lui-même fonctionne toujours en arrière-plan, comme vous pouvez le voir en lançantps
:myuser 1799 0.0 0.0 2500052 4632 ?? Ss 21Feb16 0:48.39 tmux new-session -s Dev
En fait, même si vous quittez Terminal et que vous le redémarrez, tous les processus tmux sont toujours exécutés en arrière-plan.
Pour réellement tuer le processus tmux lui-même, vous devez faire:
tmux kill-session [-t session_name]
ou simplement:
kill -9 1799
la source
tmux attach-session
.kill -9
est absolument la mauvaise façon de le faire. Cela envoie unSIGKILL
signal qui ne permettra pas au processus de se nettoyer après lui-même, ce qui peut poser de graves problèmes avec des ressources en suspens.SIGKILL
ne devrait être utilisé que lorsqu'un processus a déjà été demandé poliment de nettoyer et de fermer via un processusSIGTERM
similaire ou similaire et, pour quelque raison que ce soit, qu'il refuse de le faire; même dans ce cas, il faut toujours éviter d’envoyerSIGKILL
s’ils le peuvent. Cette réponse implique (à tort) qu'il devrait s'agir d'une des premières choses qu'une personne devrait faire pour arrêter un processus en arrière-plan, tel qu'un serveur tmux.