ออกจากหน้าต่าง tmux โดยไม่ออกจากโปรแกรม Terminal


80

ตกลงฉันยังใหม่กับสิ่งนี้ ฉันติดตั้งtmuxเพื่อใช้การทดสอบหลายวัน หลังจากพิมพ์tmux new -s nameฉันได้หน้าต่างใหม่พร้อมแบนเนอร์สีเขียวที่ด้านล่าง ฉันรวบรวมและเรียกใช้โปรแกรมจาวา ตอนนี้ฉันไม่ทราบวิธีออกจากหน้าต่าง (ในขณะที่ปล่อยให้มันทำงาน) เคอร์เซอร์ทุบตี (หรืออะไรก็ตาม) ไม่ตอบสนองเนื่องจากโปรแกรมจาวายังคงทำงานอยู่ ทางออกของฉันคือการออกจากโปรแกรม Terminal อย่างสมบูรณ์และเปิดใหม่อีกครั้ง ความคิดเห็นเกี่ยวกับวิธีการออกจากหน้าต่าง tmux โดยไม่ออกจากโปรแกรม Terminal ทั้งหมด


2
man tmux | less -p detach
jasonwryan

คำตอบ:


145

แยกออกจากเซสชั่นที่แนบมาในปัจจุบัน

เซสชั่น

Ctrl+ b dหรือCtrl+b :detach

จอภาพ

Ctrl+ a Ctrl+ dหรือCtrl+a :detach


จากนั้นคุณต้องเรียกใช้tmux attachเพื่อเข้าสู่เซสชันที่เปิดอีกครั้งหลังจากเชื่อมต่อใหม่
Besi

1
ฉันทำมาตลอดENTER ~ .นี่ดูดีกว่า
Thomas Eding

8

ฉันเชื่อว่าคำตอบก่อนหน้านี้ไม่สมบูรณ์ อะไร:detachคือการปิดวิวพอร์ตที่แสดงกิจกรรม tmux อย่างไรก็ตาม tmux เองยังคงทำงานในพื้นหลังอย่างที่คุณเห็นโดยการเรียกใช้ps:

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

ในความเป็นจริงแม้ว่าคุณจะออกจากเทอร์มินัลและเริ่มต้นขึ้นอีกครั้งกระบวนการ tmux ใด ๆ ยังคงทำงานอยู่ในพื้นหลัง

หากต้องการฆ่ากระบวนการ tmux เองคุณต้องทำ:

tmux kill-session [-t session_name]

หรือเพียงแค่:

kill -9 1799


5
อิมโฮมันจะทำให้รู้สึกถึงความเห็นเพิ่มเติมเกี่ยวกับข้อบกพร่องของคำตอบภายใต้คำตอบนั้นและปล่อยให้โพสต์ของคุณเป็นคำตอบที่สมบูรณ์และมีอยู่โดยไม่ต้องการให้ผู้อ่านค้นหาคำตอบก่อนหน้านี้แล้ววิเคราะห์
techraf

2
ฉันคิดว่า OP ต้องการกระบวนการพื้นหลังโดยเฉพาะ (java ในกรณีของเขา) เพื่อทำงานต่อไปดังนั้นการฆ่ามันจะเป็นการต่อต้าน tmux attach-sessionน่าสนใจมากขึ้นก็จะไปอีกแนบมาในภายหลังเพื่อกระบวนการแฝดด้วย
ThomasH

การใช้kill -9เป็นวิธีที่ผิดอย่างยิ่ง (tm) ในการทำสิ่งนี้ สิ่งนี้จะส่งSIGKILLสัญญาณซึ่งจะไม่อนุญาตให้กระบวนการล้างข้อมูลหลังจากตัวมันเองซึ่งอาจทำให้เกิดปัญหาร้ายแรงกับทรัพยากรที่ห้อยอยู่ SIGKILLควรใช้เมื่อกระบวนการได้รับการร้องขออย่างสุภาพในการล้างและปิดระบบผ่านSIGTERMหรือคล้ายกันและไม่ว่าด้วยเหตุผลใดก็ตามปฏิเสธที่จะทำเช่นนั้น ถึงอย่างนั้นก็ควรหลีกเลี่ยงการส่งSIGKILLหากทำได้ คำตอบนี้ infers (ไม่ถูกต้อง) ว่ามันควรเป็นหนึ่งในสิ่งแรกที่คนควรทำเพื่อปิดกระบวนการพื้นหลังเช่นเซิร์ฟเวอร์ tmux
eestrada
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.