145

OK I'm new to this. I installed tmux to run a several days experiment. After typing tmux new -s name I got a new window with green banner at the bottom. I compile and run java program. Now I do not know how to exit the window (while leave it running). The bash (or whatever) cursor is not responding because the java program is still running. My solution so far is to quit the Terminal program completely and reopen it again. Any ideas on how to quit the tmux window without exiting the whole Terminal program?

3
  • 5
    man tmux | less -p detach
    – jasonwryan
    Dec 16, 2014 at 3:47
  • For more interactive way, you can do Ctrl+b swhich will list sessions, navigate to the one you want to kill and type :kill-session.
    – hakunin
    Apr 16, 2020 at 11:22
  • 1
    I just ended up doing exit and it worked on my Mac terminal.
    – Dave Liu
    Jun 14, 2022 at 23:48

2 Answers 2

239

Detach from currently attached session

Session

Ctrl+ b d or Ctrl+ b :detach

Screen

Ctrl+ a Ctrl+ d or Ctrl+ a :detach

4
  • 4
    You then need to run tmux attach to enter the open session again after re-connecting.
    – Besi
    Feb 27, 2019 at 17:56
  • 1
    I've always done ENTER ~ . This seems nicer. Jun 24, 2019 at 16:54
  • Is there space between ~ and . and it also returns permission denied: /home/folder @ThomasEding
    – alper
    Oct 18, 2020 at 19:23
  • @alper No spaces at all in the expression I typed above. Oct 22, 2020 at 21:21
18

The previous answers are incomplete, I believe. What :detach does is to shut down the viewports that are displaying tmux activity. However, tmux itself is still running in the background as you can see by running ps:

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

In fact, even if you quit terminal and start it up again, any tmux processes are STILL running in the background.

To actually kill the tmux process itself, you have to do:

tmux kill-session [-t session_name]

or simply:

kill -9 1799

3
  • 7
    Imho, it would make more sense to comment about some answer's deficiencies under that particular answer and leave your post as a complete and contained answer without requiring readers to find out which answers are previous and then analyse them.
    – techraf
    Mar 2, 2016 at 14:59
  • 5
    I think OP specifically wanted the background process (java, in his case) to continue running, so killing it would be counter-productive. More interesting would be to re-attach later to the detached process with tmux attach-session.
    – ThomasH
    Mar 27, 2018 at 15:46
  • 4
    Using kill -9 is absolutely the Wrong Way(tm) to do this. This sends a SIGKILL signal which will not allow the process to clean up after itself, which can cause serious problems with dangling resources. SIGKILL should only be used when a process has already politely been asked to cleanup and shut down via SIGTERM or similar and, for whatever reason, refuses to do so; even then, one should still avoid sending SIGKILL if they can. This answer infers (incorrectly) that it should be one of the first things a person should do to shutdown a background process like a tmux server.
    – eestrada
    Aug 12, 2019 at 23:47

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .