次のエラーメッセージが表示されました。
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]]
何をお勧めしますか?
エラーが示すように、 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 コマンドがデフォルトでそのバックエンドになりますその後。
完全開示:私は 屏風 の作者およびメンテナーです。
byobu
セッションにすでに参加していることに気づかなかったのではないでしょうか。それは私がこれを見たとき、ちょっとした「ドー」の瞬間です。Byobu
は、バックエンドで使用しているプログラムに引数を渡すようです。 screen
が-ls引数を取ることを知っているので、それを認識して-lsを渡した場合は称賛に値します。ただし、特に指定しない限り、byobu
はTMUX
を使用しているため、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
を強制的に曲げるのではなく、古いセッションを閉じることです。しかし、それは私見です。