web-dev-qa-db-ja.com

屏風エラー:セッションは慎重にネストする必要があります。 $ TMUXの設定を解除して強制

次のエラーメッセージが表示されました。

1.1。

byobu
ERROR: Sessions should be nested with care. Unset $TMUX to force.

一部のバージョンでは、エラーではなく警告が表示されます。

WARNING: Sessions should be nested with care.

2.2。

byobu -ls
tmux: unknown option -- s
usage: tmux [-28lquvV] [-c Shell-command] [-f file] [-L socket-name]
            [-S socket-path] [command [flags]]

何をお勧めしますか?

12
user2831910

エラーが示すように、 Byobu または Tmux 内に Byobu セッションをネストすると複雑になります。これを実行することがわかっている場合は、TMUX環境変数の設定を解除して、この保護をオーバーライドする必要があります。これは、次のように1行で実行できます。

TMUX=  byobu

2番目の質問では、 GNU Screen -lsコマンドを実行してセッションを一覧表示しようとしているようです。もしそうなら、ByobuがTmuxとScreenの2つの異なるバックエンドをサポートするようになったという事実をおそらく混乱させているでしょう。

Byobuのデフォルトの動作は、Tmuxバックエンドを使用することです。ただし、バイナリ byobu-tmux または byobu-screen を直接呼び出すことで、いつでも一時的にオーバーライドできます。 byobu-select-backend を使用してデフォルトのバックエンドを永続的に選択および構成でき、単純な byobu コマンドがデフォルトでそのバックエンドになりますその後。

完全開示:私は 屏風 の作者およびメンテナーです。

4
Dustin Kirkland
  1. byobuセッションにすでに参加していることに気づかなかったのではないでしょうか。それは私がこれを見たとき、ちょっとした「ドー」の瞬間です。
  2. Byobuは、バックエンドで使用しているプログラムに引数を渡すようです。 screenが-ls引数を取ることを知っているので、それを認識して-lsを渡した場合は称賛に値します。ただし、特に指定しない限り、byobuTMUXを使用しているため、TMUXは引数について不平を言いました。これは、不可解な出力をより明確に説明することを願っています。

複数のbyobuセッション(必ずしもネストされている必要はありません)があり、さらに別の端末(byobu内からではない)からbyobuを呼び出すと、いくつかのセッションが得られることがわかりました。選択肢。これは実際にはTMUX出力だと思います:

byobu
Byobu sessions...

  1. tmux: 0: 1 windows (created Wed Aug 27 10:31:14 2014) [209x57] (attached)
  2. tmux: 1: 1 windows (created Wed Aug 27 10:31:23 2014) [80x23] (attached)
  3. Create a new Byobu session (tmux)
  4. Run a Shell without Byobu (/bin/bash)

実行中のセッションが1つしかない場合、この出力は表示されません。

ダスティンの答えから、$TMUX環境変数について何かを学びました。しかし、それは私が思うもう少し説明を正当化する。

$TMUXには、セッションのジャグリング/追跡追跡にTMUXが使用する必要のあるいくつかのファイルへのパスが含まれます。

(from within a byobu session)
echo $TMUX
/tmp/tmux-1000/default,2003,0

明らかに、この環境変数をクリアすると、TMUXはすべてのセッションを忘れてしまいます。また、ネストしていることに気付かないため、やりたいことを実行できます。これは、最初に表示されたエラーメッセージでは強制と呼ばれます。

より良い代替策は、開いているすべてのセッションを確認して、本当にネストするかどうかを決定し、TMUXを強制的に曲げるのではなく、古いセッションを閉じることです。しかし、それは私見です。

2
Wilbur Whateley