シャットダウン時(およびSSHをシャットダウンするとき)、分離された画面のエイリアス

シャットダウン時(およびSSHをシャットダウンするとき)、分離された画面のエイリアス

私のサーバーに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

このように擬似端末の割り当てを強制的に開始するには、-twithを使用する必要があります。sshscreen

リモートホストのエイリアスはこれに似てい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

注:RemoteCommandOpenSSH 7.6(2017-10-03)に追加されました。


のためtmux

  • 代わりtmux new-session -A -s "%n"にinを使用してください。~/.ssh/configscreen -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} ' )

関連情報