tmuxペインを「再起動」する簡単な方法はありますか?


48

tmux次のように(1.7)ウィンドウ分割があると仮定します。

 ________________________
|           1            |
|                        |
|-----------+------------|
|     2     |      3     |
|___________|____________|

現在、垂直サイズはカスタマイズされているため、デフォルトのレイアウトの1つではありません。

場合によっては、プログラムがスタックしたり、を介して接続したマシンを再起動するsshと、ペインが「ハング」します。すなわちkill-pane、動作するように見える以外は何もありません。

ただし、ペイン#1がkill-panedになったら、上記の分割構成を簡単に再構築する方法はないため、「再起動」したいと思います。

回答:


81

マニュアルを見ると、コマンドrespawn-paneは私を打ったが、これは動作しなかったことが判明した。もっと詳しく読むと、実行中のコマンドrespawn-pane -k強制終了されるため、それが答えであることがわかりました。

このようにして、ペインを「再起動」し、その場で新たにスポーンできます。

だから、<prefix>+ :その後、入力respawn-pane -kキーを押しEnter


4
または-kremain-on-exitモードでペインを作成し、自分でコマンドを終了した場合は、withoutを使用します。
ペテルフ

あなたはHASTアーメン、新たに生み出されたされて
cambunctious

4

実際には、レイアウトを再構築する方法があります- list-windowsセッション内のすべてのウィンドウのレイアウトの説明を提供しselect-layout、文字列をダイジェストして、レイアウトを適切に設定できます(select-layoutマニュアルページを参照tmux(1))。

あなたのsshの問題については-システムがシャットダウンするとsshサーバーが接続を閉じるはずです(sshデーモンをシャットダウンせずにセッションを適切に実行しないことで適切な動作を何らかの形で混乱させるLinuxディストリビューションを見たことがありますが)-その場合、参照ESCAPE CHARACTERSセクション(と、それを参照する他の場所)ssh(1)に続くエスケープ文字- .強制的にクライアント側の接続を終了する(ドット)。もちろん、ペインをssh実行して起動しただけでは役に立ちませんが、問題が頻繁に発生する場合は、ペインでシェルを実行し、そこからsshを呼び出したいと思うでしょう。


価値を追加するため、私はあなたの答えを支持しました。しかし、エスケープ文字が必ずしも良いアイデアではない理由は次のとおりです。sshセッションを使用して、オープンなssh接続を持つtmuxセッションに接続します。その後、突然、最初のssh接続を超えてエスケープ文字を送信して、内側の接続に到達する方法を考える必要があります。ところで、私は通常シェルからsshを実行します。
0xC0000022L

1
ネストされたtmuxセッションを実行しているときとほぼ同じです。外部セッションと内部セッションで異なるエスケープ文字を使用するか(sshまたはtmuxのいずれか)、エスケープ文字を2回送信するだけで、単一のエスケープ文字としてネストされたセッションに移動します(sshのハードワイヤード動作、構成可能) tmuxで)。
ペテルフ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.