コマンドライン引数を使用せずに以前のセッションに再接続するようにGNU screenまたはtmuxをどのように設定しますか?

コマンドライン引数を使用せずに以前のセッションに再接続するようにGNU screenまたはtmuxをどのように設定しますか?

スタートGNU画面またはマルチプレクサ初期基本シェル(たとえば、chshを使用して設定します。)、次のパラメータ渡しはサポートされていないようです。画面の場合、「-d RR」そしてtmux「追加」chshのパラメータは、シェルファイル実行可能ファイルのフルパス名です。(にリストされています/etc/shells)。

画面の場合は、前の画面セッションに再接続する内部コマンドがありますか?それともどのような方法がありますか?引く前のスクリーンセッションから現在のセッションまでの個々のプロセスは何ですか?

~/.tmux.conftmuxの場合、ユーザープロファイル(デフォルト)から以前のセッションに直接移動するオプションを設定する方法はありますか?

引数なしでtmuxを開始した後(新しいセッションの作成)、手動で古いセッション(CTRL+ B()に切り替えてから、新しく開始されたセッション(CTRL+ B:kill-session -a)を終了できます。

答え1

良いアイデア。次のようなラッパーを作成します/bin/my-screen

#!/usr/bin/env sh

screen -d -RR

実行可能にし、次に追加します/etc/shells

echo /bin/my-screen | sudo tee -a /etc/shells

デフォルトのシェルに設定します。

chsh --shell /bin/my-screen

一部のターミナルエミュレータ(たとえば、デフォルトxtermで定義されているエミュレータ)はシェルを実行しませんが、最初に変数を確認します/etc/passwd$SHELL

これを次の項目に追加してみることができます~/.screenrc

screen -X screen -d -RR

ただし、このソリューションには潜在的な問題があることに注意してください。再接続する既存のセッションscreenがないとscreen、まったく起動できません。つまり screen、そのシェルをデフォルトのシェルに設定すると、システムにログインできなくなります。

答え2

私のzshrcの下部には次のものがあります。

[ -z "$TMUX" ] && {
    tmux attach || tmux new-session
}

これまで何の問題も発生していませんでした。私の考えでは、そのサーバーで何年もあったようです。

関連情報