OK “Sono nuovo di questo. Ho installato tmux
per eseguire un esperimento di diversi giorni. Dopo aver digitato tmux new -s name
ho una nuova finestra con il banner verde in basso. Compilo ed eseguo il programma java. Ora non so come uscire dalla finestra (mentre lasciarlo in esecuzione). Il cursore bash (o qualsiasi altra cosa) non risponde perché il programma java è ancora in esecuzione. La mia soluzione finora è chiudere completamente il programma Terminal e riaprirlo di nuovo. Qualche idea su come chiudere la finestra di tmux senza uscire lintero programma Terminal?
Commenti
Risposta
Scollega dalla sessione attualmente collegata
Sessione
Ctrl + b d o Ctrl + b :detach
Schermo
Ctrl + a Ctrl + d o Ctrl + a :detach
Commenti
- È quindi necessario eseguire
tmux attach
per accedere nuovamente alla sessione aperta dopo la riconnessione. - I ' lho sempre fatto
ENTER ~ .
Sembra più carino. - Cè spazio tra
~
e.
e restituisce anchepermission denied: /home/folder
@ThomasEding - @alper Nessuno spazio nellespressione I digitato sopra.
Risposta
Le risposte precedenti sono incomplete, credo. Ciò che :detach
fa è chiudere le finestre che mostrano attività tmux. Tuttavia, tmux stesso è ancora in esecuzione in background, come puoi vedere eseguendo ps
:
myuser 1799 0.0 0.0 2500052 4632 ?? Ss 21Feb16 0:48.39 tmux new-session -s Dev
In effetti, anche se esci dal terminale e lo riavvii, tutti i processi tmux sono ANCORA in esecuzione in background.
Per terminare effettivamente il processo tmux stesso, devi:
tmux kill-session [-t session_name]
o semplicemente:
kill -9 1799
Commenti
- Imho, avrebbe più senso commentare alcune mancanze di ' in quella particolare risposta e lascia il tuo post come una risposta completa e contenuta senza richiedere ai lettori di scoprire quali sono le risposte precedenti e quindi di analizzarle.
- Penso che OP volesse specificamente che il processo in background (java, nel suo caso) continuasse a funzionare , quindi ucciderlo sarebbe controproducente. Più interessante sarebbe ricollegarsi in un secondo momento al processo scollegato con
tmux attach-session
. - Luso di
kill -9
è assolutamente Modo sbagliato ™ per farlo. Questo invia un segnaleSIGKILL
che non consentirà al processo di ripulirsi dopo se stesso, il che può causare seri problemi con le risorse sospese.SIGKILL
deve essere utilizzato solo quando è già stato gentilmente chiesto di pulire e chiudere un processo tramiteSIGTERM
o simile e, per qualsiasi motivo, si rifiuta di farlo; anche allora, si dovrebbe comunque evitare di inviareSIGKILL
se possibile. Questa risposta deduce (erroneamente) che dovrebbe essere una delle prime cose che una persona dovrebbe fare per arrestare un processo in background come un server tmux.
man tmux | less -p detach
Ctrl+b s
che elencherà le sessioni, passare a quella che desideri eliminare e digitare:kill-session
.