クローズコマンドを送信した後、SSHセッションは終了しません。

クローズコマンドを送信した後、SSHセッションは終了しません。

Debianサーバーをシャットダウンまたは再起動するコマンドを送信するたびに、シェルがハングして応答しません(コマンドを入力できません)。

ここに画像の説明を入力してください。

Ubuntuで同じことを行うと、セッションは正常に終了するため、バンドル端末はそこにありません。Debian で同じ動作を得るためにインストールする必要があるパッケージや設定の変更はありますか?

答え1

これは私にとって効果的です。

apt-get install libpam-systemd dbus

UsePAM yesまた、SSH設定に対応するエントリがあることを確認してください。

grep -i UsePAM /etc/ssh/sshd_config

残念ながら、ソリューションを適用するには再起動する必要があります。

上海サーバー障害

答え2

systemd現在追跡している問題のようです。バグ #751636

ホストがシャットダウンまたは再起動されると、systemdSSHセッションが終了する前にネットワークがシャットダウンする可能性があります。

いくつかの解決策が提供されていますが、具体的な内容はありません。

  1. 電源イベントを処理するには、acpid/acpi-support-base以下を追加します。/etc/acpi/powerbtn-acpi-support.sh

    else
    -       # Normal handling.
    -       /sbin/shutdown -h -P now "Power button pressed"
    +
    +       if [ -x /bin/systemctl ] ; then
    +           echo "\nPower button pressed\nThe system is going down for system halt NOW!" |\
    +            /usr/bin/wall -n
    +           /bin/systemctl --force poweroff
    +       else
    +           # Normal handling.
    +           /sbin/shutdown -h -P now "Power button pressed"
    +       fi
    +
    fi
    

    次に、次のようにエイリアスを作成します~/.bashrc

    alias reboot='echo "The system is going down for system reboot NOW!" |\
    /usr/bin/wall -n ; /bin/systemctl --force reboot'
    
    alias poweroff='echo "The system is going down for system halt NOW!" |\
    /usr/bin/wall -n ; /bin/systemctl --force poweroff'
    
  2. /etc/systemd/system/ssh-user-sessions.service次のコンテンツを使用して作成します。

    [Unit]
    Description=Shutdown all ssh sessions before network
    After=network.target
    
    [Service]
    TimeoutStartSec=0
    Type=oneshot
    RemainAfterExit=yes
    ExecStart=/bin/true
    ExecStop=/usr/bin/killall sshd
    

関連情報