keluar dari jendela tmux tanpa keluar dari program Terminal


80

OK saya baru dalam hal ini. Saya menginstal tmuxuntuk menjalankan percobaan beberapa hari. Setelah mengetik tmux new -s namesaya mendapat jendela baru dengan spanduk hijau di bagian bawah. Saya mengkompilasi dan menjalankan program java. Sekarang saya tidak tahu cara keluar dari jendela (sambil membiarkannya berjalan). Kursor bash (atau apa pun) tidak merespons karena program java masih berjalan. Solusi saya sejauh ini adalah keluar dari program Terminal sepenuhnya dan buka kembali. Ada ide tentang cara keluar dari jendela tmux tanpa keluar dari seluruh program Terminal?


2
man tmux | less -p detach
jasonwryan

Jawaban:


147

Lepaskan dari sesi yang terlampir saat ini

Sidang

Ctrl+ b datau Ctrl+b :detach

Layar

Ctrl+ a Ctrl+ datau Ctrl+a :detach


Anda kemudian perlu menjalankan tmux attachuntuk memasuki sesi terbuka lagi setelah menghubungkan kembali.
Besi

1
Saya selalu melakukan ENTER ~ .ini Tampaknya lebih baik.
Thomas Eding

8

Saya yakin, jawaban sebelumnya tidak lengkap. Apa yang :detachdilakukan adalah mematikan viewports yang menampilkan aktivitas tmux. Namun, tmux sendiri masih berjalan di latar belakang seperti yang Anda lihat dengan menjalankan ps:

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

Bahkan, bahkan jika Anda keluar dari terminal dan memulainya lagi, semua proses tmux masih berjalan di latar belakang.

Untuk benar-benar membunuh proses tmux itu sendiri, Anda harus melakukan:

tmux kill-session [-t session_name]

atau hanya:

kill -9 1799


5
Imho, akan lebih masuk akal untuk berkomentar tentang kekurangan beberapa jawaban di bawah jawaban khusus itu dan meninggalkan posting Anda sebagai jawaban yang lengkap dan berisi tanpa mengharuskan pembaca untuk mengetahui jawaban mana yang sebelumnya dan kemudian menganalisisnya.
techraf

2
Saya pikir OP secara khusus ingin proses latar belakang (java, dalam kasusnya) untuk terus berjalan, jadi membunuh itu akan menjadi kontra-produktif. Lebih menarik adalah untuk melampirkan kembali nanti dengan proses terpisah dengan tmux attach-session.
ThomasH

Menggunakan kill -9benar-benar cara yang salah (tm) untuk melakukan ini. Ini mengirimkan SIGKILLsinyal yang tidak akan membiarkan proses untuk membersihkan sendiri, yang dapat menyebabkan masalah serius dengan sumber daya yang menggantung. SIGKILLseharusnya hanya digunakan ketika suatu proses telah dengan sopan diminta untuk membersihkan dan mematikan melalui SIGTERMatau serupa dan, untuk alasan apa pun, menolak untuk melakukannya; bahkan kemudian, seseorang harus tetap menghindari pengiriman SIGKILLjika mereka bisa. Jawaban ini menyimpulkan (salah) bahwa itu harus menjadi salah satu hal pertama yang harus dilakukan seseorang untuk mematikan proses latar belakang seperti server tmux.
eestrada
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.