2.9a にアップグレードした後、tmux が send-key でセグメント違反を起こす

2.9a にアップグレードした後、tmux が send-key でセグメント違反を起こす

tmuxUbuntu Server を 18.10 から 19.04 にアップグレードし、その後 19.10 にアップグレードしました。このアップグレードでも新しいバージョンにアップグレードされたと思います。

それ以来、tmuxダッシュボードを構築する私のスクリプトは動作しなくなりました。

次のようなコマンドを発行すると

tmux send-keys "echo 'test'" C-m;

メッセージが届きましたlost server

これは、ターゲットとなっているペインを含むセッションに何もアタッチされていない場合に発生します。

セッションを開始してそれに接続すると、send-keys動作します。

syslogには次のエントリが含まれています

3月12日 23:27:33 マシン カーネル: [ 27.074805] tmux: サーバー[2657]: 751 でセグメント違反 ip 000056042469f029 sp 00007ffe602aa6f0 tmux[560424675000+62000] でエラー 4

これは私の作成スクリプトのように見えますが、crontabとして呼び出されます@rebootが、手動で実行した場合にも問題が発生します。

SESSION=stuff

tmux new-session -d -s $SESSION -n 'homepage'
tmux split-window -h -p 50
tmux select-pane -t 1; tmux send-keys "./lhp.sh" C-m;
tmux select-pane -t 2; tmux send-keys "./lnginx.sh" C-m;
tmux split-window -v -p 50
tmux select-pane -t 3; tmux send-keys "./lsmr.sh" C-m;

tmux new-window -t $SESSION -n 'shells'
tmux split-window -h -p 50

tmux select-window -t :1;

そして、後の時点(数時間または数日後)で、私は

tmux attach-session -t stuff

コンテンツを表示します。

以前と同じように使い続けることができるか知っている人はいますか?

答え1

「./l*」スクリプトを「sleep 10」に置き換えると、スクリプトは tmux 3.1-rc でクラッシュしなくなります。したがって、これは 2.9a のバグか、スクリプトの 1 つに問題があるかのどちらかです。

もちろん、スクリプトも機能しません。new -tと を混在させることはできません。の代わりに-nという意味ですか? また、 を追加する必要がある可能性があります。そうしないと、スクリプトの残りの部分は実行されません。 また、ペイン番号も間違っています。 1 回だけ分割していますが、0 と 1 しかないのに、ペイン 1 と 2 を対象としています。 したがって、これは実際に使用しているスクリプトではないと思われます。-s-t-d

いずれにせよ、tmux 2.9aはサポートされなくなったので、tmux 3.0aまたは3.1-rcをビルドして、問題がまだ存在するかどうかを確認するのが最善策です。問題がある場合は、次のアドレスで問題を報告できます。tmux の最新バージョンは、 tmux.github.com から入手できます。できれば、実際に使用しているスクリプトといくつかの tmux ログ ファイルも含めます。

答え2

これは のバグですtmux

問題はここで追跡されていますバグ:そしてそれはここで参照されているtmux の最新バージョンは 1.1.1 にアップグレードする必要があります。

この修正は「不適切な構成」の問題であるため優先度は低く、少なくとも 3.0-rc5 にはまだ存在しています。

基本的には次のような問題です:

したがって、構成の解析からのエラー メッセージがまだ表示されているフレームにキーストロークを送信すると、クラッシュが発生するようです。

tmuxしたがって、次のようなエラーが発生しない有効な設定ファイルがあることを確認する必要があります。

.tmux.conf:33: invalid option: pane-border-fg

関連情報