web-dev-qa-db-ja.com

シャットダウンコマンドを送信した後、sshセッションが終了しない

Debianサーバーをオフにするか再起動するコマンドを送信するときはいつでも、私のシェルはハングしたままで応答しません(コマンドを入力できません)。

enter image description here

Ubuntuで同じアクションを実行すると、セッションが正常に終了するため、拘束された端末がそこにぶら下がっていません。 Debianでこれと同じ動作をさせるために、インストールする必要のあるパッケージまたは構成変更が必要ですか?

12
Programster

これは私のために働きました:

apt-get install libpam-systemd dbus

また、UsePAM yes ssh設定で。

grep -i UsePAM /etc/ssh/sshd_config

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

serverfault の詳細な説明。

11
mivk

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

ホストがシャットダウンまたは再起動すると、systemdがsshセッションを終了する前にネットワークをシャットダウンする場合があります。

いくつかの解決策がありますが、具体的なものはありません:

  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
    
7
neuron