Debian

發送關閉命令後,ssh 會話不會終止

  • March 9, 2016

每當我發送關閉或重新啟動我的 Debian 伺服器的命令時,我的 shell 都會掛起並且沒有響應(無法輸入任何命令)。

在此處輸入圖像描述

在 Ubuntu 中執行相同的操作會導致會話正常關閉,因此我沒有掛在那裡的捆綁終端。是否有我需要安裝的軟體包或進行配置更改,以便我可以在 Debian 上獲得相同的行為?

這對我有用:

apt-get install libpam-systemd dbus

還要確保你有UsePAM yes你的 ssh 配置。

grep -i UsePAM /etc/ssh/sshd_config

不幸的是,您需要重新啟動才能使解決方案生效…

關於serverfault的詳細解釋。

看起來這是systemd目前在錯誤 #751636下跟踪的問題。

當主機關閉或重新啟動時,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'
  1. 在其中創建/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

引用自:https://unix.stackexchange.com/questions/216950