Debianサーバーをオフにするか再起動するコマンドを送信するときはいつでも、私のシェルはハングしたままで応答しません(コマンドを入力できません)。
Ubuntuで同じアクションを実行すると、セッションが正常に終了するため、拘束された端末がそこにぶら下がっていません。 Debianでこれと同じ動作をさせるために、インストールする必要のあるパッケージまたは構成変更が必要ですか?
これは私のために働きました:
apt-get install libpam-systemd dbus
また、UsePAM yes
ssh設定で。
grep -i UsePAM /etc/ssh/sshd_config
残念ながら、ソリューションを有効にするには再起動する必要があります...
serverfault の詳細な説明。
バグ#751636 で現在追跡されているsystemd
の問題のようです。
ホストがシャットダウンまたは再起動すると、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