Tmux by default will only run one server process per user, and this server process can have multiple sessions. A Tmux client and the server communicate via a Unix domain socket in the /tmp directory. The -L option can be used to specify a different socket; a new server is created for each socket.
Fonte: link
As sessões do tmux não são exibidas por ps
ou htop
porque elas não são processos. Como você descobriu, o único processo do servidor tmux que hospeda todas as sessões para o seu usuário aparece, junto com qualquer processo do cliente tmux que possa ser anexado à (s) sua (s) sessão (ões). O que você verá na lista de processos são quaisquer shells e outros processos-filhos que você chamou em painéis e janelas de suas sessões tmux.
Confira esta saída parcial de pstree -ap
de uma máquina Linux em que estou executando o tmux:
|-sshd,3406
| |-sshd,18196
| '-sshd,18201
| '-bash,18202
| '-tmux,18297 att
|-tmux,10496 new-session -s main
| |-bash,10497
| | '-ssh,10584 otherhost.mydomain.local
| |-bash,17650
| '-bash,18303
| |-less,18390
| '-pstree,18389 -ap
| '-bash,18487
| '-cat,18573 - this-is-in-another-session
Você pode ver meu processo do servidor tmux (10496). A primeira sessão que criei tem 3 painéis (todos executando bash
). Um é ssh'd para outro host. Outro está sentado em um prompt, e por isso não tem filhos. E o terceiro está exibindo pstree
output em less
. Você também pode ver meu processo do cliente tmux (18297).
Esses 3 painéis estão em uma sessão anexada.
Eu tenho outra sessão com um painel executando bash
e o processo cat
que você vê. Isso é desanexado, mas ainda é um filho do único processo do servidor tmux.