Debian
發送關閉命令後,ssh 會話不會終止
每當我發送關閉或重新啟動我的 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 會話之前關閉網路。提供了幾個解決方案,但沒有具體的解決方案:
- 用於
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'
- 在其中創建
/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