OK Je suis nouveau dans ce domaine. Jai installé tmux
pour lexécuter une expérience de plusieurs jours. Après avoir tapé tmux new -s name
jai une nouvelle fenêtre avec une bannière verte en bas. Je compile et lance le programme java. Maintenant, je ne sais pas comment quitter la fenêtre (alors le laisser en cours dexécution). Le curseur bash (ou autre) ne répond pas car le programme java est toujours en cours dexécution. Ma solution jusquà présent est de quitter complètement le programme Terminal et de le rouvrir. Toute idée sur la façon de quitter la fenêtre tmux sans quitter tout le programme Terminal?
Commentaires
Réponse
Détacher de la session actuellement jointe
Session
Ctrl + b d ou Ctrl + b :detach
Écran
Ctrl + a Ctrl + d ou Ctrl + a :detach
Commentaires
- Vous devez ensuite exécuter
tmux attach
pour accéder à nouveau à la session ouverte après la reconnexion. - I ' ai toujours fait
ENTER ~ .
Cela semble plus joli. - Y a-t-il un espace entre
~
et.
et il renvoie égalementpermission denied: /home/folder
@ThomasEding - @alper Aucun espace du tout dans lexpression I tapé ci-dessus.
Réponse
Les réponses précédentes sont incomplètes, je crois. Ce que fait :detach
est de fermer les fenêtres qui affichent lactivité tmux. Cependant, tmux lui-même fonctionne toujours en arrière-plan comme vous pouvez le voir en exécutant ps
:
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 le terminal et le redémarrez, tous les processus tmux sont ENCORE exécutés en arrière-plan.
Pour tuer le processus tmux lui-même, vous devez faire:
tmux kill-session [-t session_name]
ou simplement:
kill -9 1799
Commentaires
- A mon avis, il serait plus judicieux de commenter certaines lacunes de la réponse ' sous cette réponse particulière et laissez votre message comme une réponse complète et contenue sans que les lecteurs découvrent les réponses précédentes et les analysent ensuite.
- Je pense quOP souhaitait spécifiquement que le processus darrière-plan (java, dans son cas) continue de fonctionner , alors le tuer serait contre-productif. Il serait plus intéressant de se rattacher ultérieurement au processus détaché avec
tmux attach-session
. - Utiliser
kill -9
est absolument le Mauvaise façon ™ de faire cela. Cela envoie un signalSIGKILL
qui ne permettra pas au processus de se nettoyer après lui-même, ce qui peut causer de sérieux problèmes avec les ressources en suspension.SIGKILL
ne doit être utilisé que lorsquun processus a déjà été poliment invité à nettoyer et arrêter viaSIGTERM
ou similaire et, pour une raison quelconque, refuse de le faire; même dans ce cas, il faut quand même éviter denvoyerSIGKILL
sils le peuvent. Cette réponse en déduit (à tort) que ce devrait être lune des premières choses quune personne devrait faire pour arrêter un processus darrière-plan comme un serveur tmux.
man tmux | less -p detach
Ctrl+b s
qui listera les sessions, accédez à celle que vous voulez tuer et tapez:kill-session
.