私のサーバーにSSHで接続すると、自動的にGNU画面が起動します。終わったら分けるべきです。その後、終了してSSHを終了します。これは、ある時点でサーバーにSSHを接続したときに停止した部分から続行できることを意味します。
画面内でSSHを分離および削除するためにエイリアス(例:)を作成できますか?
答え1
screen
リモートホストにログインすると起動します(ローカルシステムで実行されます)。
ssh -t user@host screen
リモートホストのスクリーンセッションから切り離してログアウトします(制御ソケットを使用して永続接続を使用しない限り(設定のControlMaster
使用など)、SSHセッションは終了します)。ControlPersist
~/.ssh/config
screen -d
後でログインして再接続してください。
ssh -t user@host screen -r
このように擬似端末の割り当てを強制的に開始するには、-t
withを使用する必要があります。ssh
screen
リモートホストのエイリアスはこれに似ていscreen -d
ますdetach='screen -d'
。
localhostでは、~/.ssh/config
ファイルに次のセクションがある可能性があります。
Host *-screen
RequestTTY force
RemoteCommand screen -d -R
Host myhost myhost-screen
HostName myhost.somedomain.example.com
User myname
その後、使用するたびに
ssh myhost-screen
screen
指定されたホストでセッションが作成(または再接続)されます。
ssh myhost
使用しませんscreen
。
注:RemoteCommand
OpenSSH 7.6(2017-10-03)に追加されました。
のためtmux
:
- 代わり
tmux new-session -A -s "%n"
にinを使用してください。~/.ssh/config
screen -d -R
- 分離するには、prefixdまたは
tmux detach-client
を使用します。tmux detach
答え2
画面を呼び出すか生成するために画面コマンドを実行すると、 後ろに SSH接続を終了するために親シェルのaa Killを追加しました。
親プロセスがbashの場合に親プロセスを終了する例
kill $( ps -ax -o pid,ppid,args | grep "^$$ " | grep bash | awk '{print $2} ' )