SSH経由で接続するときは、ローカルシステムのシェルに戻る前にシステムを2回シャットダウンする必要があります。これが起こる理由はありますか?そうしてはいけません。
答え1
起動したシェルの上に新しい対話型シェルを起動すると、これが発生する可能性がありますssh
。たとえば、シェル(screen
例tmux
:)または。bash
~/.bash_profile
bash
/etc
そこから開始するか、screen
そこtmux
から開始すると、他のプロセスが実行されている間に初期シェルの開始が一時的に「中断」されます。screen
またはを終了すると、tmux
最初のシェルセッションで新しいプロンプトが表示され、別々に終了する必要があります。
この問題を解決するには、orのscreen
代わりtmux
にexec screen
orを使用してくださいexec tmux
。これは変える現在、シェルには適切なプロセスがあります。
これにより、呼び出し後に追加の設定が必要ないことを確認してください。exec
この呼び出しは起動スクリプトに制御を返しません(実行中にエラーが発生しない限りexec
)。
以下は、ログイン時に起動するためのマイ~/.profile
ファイル(使用しない)bash
の例です。tmux
if [ -z "$TMUX" ] && [ -z "$DISPLAY" ]; then
if tmux has-session; then
exec tmux attach-session
else
exec tmux
fi
fi
tmux
これは、シェルセッションがtmux
セッションでまだ実行されていない場合(その場合は設定TMUX
)、グラフィカル環境にない場合(そうである場合は設定DISPLAY
)、現在のシェルを置き換えます。tmux
セッションがある場合は接続し、そうでない場合は新しいセッションを開始してください。