esci dalla finestra di tmux senza uscire dal programma Terminale

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

  • man tmux | less -p detach
  • Per informazioni più interattive quindi, puoi eseguire Ctrl+b s che elencherà le sessioni, passare a quella che desideri eliminare e digitare :kill-session.

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 anche permission 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 segnale SIGKILL 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 tramite SIGTERM o simile e, per qualsiasi motivo, si rifiuta di farlo; anche allora, si dovrebbe comunque evitare di inviare SIGKILL 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.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *