ieșiți din fereastra tmux fără a ieși din programul Terminal

OK Sunt „nou la asta. Am instalat tmux pentru a rula un experiment de câteva zile. După ce am tastat tmux new -s name am primit o fereastră nouă cu banner verde în partea de jos. Compilez și rulez programul java. Acum nu știu cum să ies din fereastră (în timp ce lăsați-l să ruleze). Cursorul bash (sau orice altceva) nu răspunde deoarece programul Java rulează încă. Soluția mea de până acum este să părăsiți complet programul Terminal și să îl redeschideți din nou. Orice idei despre cum să părăsiți fereastra tmux fără a ieși întregul program Terminal?

Comentarii

  • man tmux | less -p detach
  • Pentru mai multe interacțiuni în felul acesta, puteți face Ctrl+b s care va lista sesiunile, naviga la cea pe care doriți să o ucideți și tastați :kill-session.

Răspuns

Desprindeți din sesiunea atașată în prezent

Sesiunea

Ctrl + b d sau Ctrl + b :detach

Ecran

Ctrl + a Ctrl + d sau Ctrl + a :detach

Comentarii

  • Apoi trebuie să rulați tmux attach pentru a intra din nou în sesiunea deschisă după reconectare.
  • I ' am făcut întotdeauna ENTER ~ . Acest lucru pare mai frumos.
  • Există spațiu între ~ și . și returnează și permission denied: /home/folder @ThomasEding
  • @alper Nu există deloc spații în expresia I tastat mai sus.

Răspuns

Răspunsurile anterioare sunt incomplete, cred. Ceea ce face :detach este de a închide ferestrele care afișează activitatea tmux. Cu toate acestea, tmux în sine rulează încă în fundal, după cum puteți vedea executând ps:

myuser 1799 0.0 0.0 2500052 4632 ?? Ss 21Feb16 0:48.39 tmux new-session -s Dev

De fapt, chiar dacă părăsiți terminalul și porniți-l din nou, orice procese tmux rămân în continuare în fundal.

Pentru a distruge procesul tmux în sine, trebuie să faceți:

tmux kill-session [-t session_name]

sau pur și simplu:

kill -9 1799

Comentarii

  • Imho, ar avea mai mult sens să comentăm unele deficiențe ale răspunsului ' la acel răspuns special și lăsați-vă postarea ca un răspuns complet și conținut fără a cere cititorilor să afle care sunt răspunsurile anterioare și apoi să le analizeze.
  • Cred că OP a dorit în mod specific ca procesul de fundal (java, în cazul său) să ruleze în continuare , deci uciderea acestuia ar fi contraproductivă. Mai interesant ar fi să vă atașați din nou ulterior la procesul detașat cu tmux attach-session.
  • Utilizarea kill -9 este absolut Wrong Way ™ pentru a face acest lucru. Aceasta trimite un semnal SIGKILL care nu va permite curățarea procesului după sine, ceea ce poate provoca probleme serioase cu resursele suspendate. SIGKILL trebuie utilizat numai atunci când un proces a fost deja solicitat politicos să curețe și să oprească prin SIGTERM sau similar și, din orice motiv, refuză să facă acest lucru; chiar și atunci, ar trebui totuși să evitați trimiterea SIGKILL dacă pot. Acest răspuns deduce (incorect) că ar trebui să fie unul dintre primele lucruri pe care o persoană ar trebui să le facă pentru a opri un proces de fundal, cum ar fi un server tmux.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *