2番目のtmuxセッションがps auxまたはhtopには表示されませんが、tmux list-sessionsには表示されるのはなぜですか?

2番目のtmuxセッションがps auxまたはhtopには表示されませんが、tmux list-sessionsには表示されるのはなぜですか?

2つの新しいセッションを開始すると、tmuxセッション名はタイムスタンプによって異なるように構成されます。 (このコマンドは最初にディレクトリを変更し、内容をリストし、bashを開いてセッションを開いたままにする新しい独立したtmuxセッションを作成します。)

 tmux new -d -s tmux-s1-2014-12-04-16-12-12-103728 'cd /home/user/dir/ect/; ls; bash'
 tmux new -d -s tmux-s2-2014-12-04-16-12-12-103728 'cd /home/user/dir/ory/; ls; bash'

htop今、彼らがまだ実行されていることを確認するために行く場合は、ps aux常にそれらの1つを探します。 (例えばps aux | grep tmux

user     13556  0.0  0.0  26288  1716 ?        Ss   16:12   0:00 tmux new -d -s tmux-s1-2014-12-04-16-12-12-103728 cd /home/user/dir/ect/; ls; bash
user     13686  0.0  0.0   8072   864 pts/1    S+   16:14   0:00 grep tmux

ただし、両方を使用すると、以下がtmux list-sessionsリストされます。

tmux-s1-2014-12-04-16-12-12-103728: 1 windows (created Thu Dec  4 16:12:20 2014) [80x23]
tmux-s2-2014-12-04-16-12-12-103728: 1 windows (created Thu Dec  4 16:12:20 2014) [80x23]

編集する:

これで追加のテストが行​​われ、今理解しているように、何らかのhtop理由で分離されたセッションは/..に表示されません。ps分離されていても、最初に確立されたセッションが表示されます。

bash最初のセッションと2番目のセッションとは別に3つのセッションを作成しました。まだ三次会議が残っています。htopフィルタリングしたときの出力ですtmux

  PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
17382 user       20   0 26296  1808  1176 S  5.0  0.1  0:00.86 ├─ tmux new -s first_session
17641 user       20   0 17552  1164   908 S  0.0  0.0  0:00.00 │  │  └─ tmux attach -t third_session

それでも3つすべてを表示していますtmux list-sessions

first_session: 1 windows (created Fri Dec  5 10:35:11 2014) [80x23]
second_session: 1 windows (created Fri Dec  5 10:35:23 2014) [80x23]
third_session: 1 windows (created Fri Dec  5 10:35:37 2014) [80x23] (attached)

問題はまだ同じです。分離されたセッションに関連付けられたセッションをすべてリストhtopできないのはなぜですか?ps aux

ベストアンサー1

デフォルトでは、Tmuxはユーザーごとに1つのサーバープロセスのみを実行し、サーバープロセスは複数のセッションを持つことができます。 Tmuxクライアントとサーバーは/ tmpディレクトリのUnixドメインソケットを介して通信します。 -L オプションを使用して別のソケットを指定できます。ソケットごとに新しいサーバーが作成されます。

源泉:http://hyperpolyglot.org/multiplexer

tmuxセッションはプロセスではないpsため、表示されません。htop見つかったように、すべてのユーザーセッションをホストする単一のtmuxサーバープロセスだけでなく、セッションに接続できるすべてのtmuxクライアントプロセスも表示されます。プロセスリストに表示されるのは、tmuxセッションのウィンドウとウィンドウで呼び出されたシェルやその他のサブプロセスです。

pstree -aptmuxを実行しているLinuxボックスの出力のいくつかを確認してください。

  |-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

私のtmuxサーバープロセス(10496)を見ることができます。私が最初に作成したセッションには3つのウィンドウがありました(すべて実行中bash)。そのうちの1つはSSHを介して他のホストに接続されます。もう一人は信号に合わせて座っていたので子供はいませんでした。 3番目はpstree出力をless。私のtmuxクライアントプロセス(18297)も表示できます。

この3つのウィンドウは追加セッションにあります。

表示されるプロセスbashとともにウィンドウを実行する別のセッションがあります。catこれは分離されていますが、まだ単一のtmuxサーバープロセスの子プロセスです。

おすすめ記事