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
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ă șipermission 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 semnalSIGKILL
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ă prinSIGTERM
sau similar și, din orice motiv, refuză să facă acest lucru; chiar și atunci, ar trebui totuși să evitați trimitereaSIGKILL
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.
man tmux | less -p detach
Ctrl+b s
care va lista sesiunile, naviga la cea pe care doriți să o ucideți și tastați:kill-session
.