Ketika Anda mematikan atau menyalakan ulang sistem Anda, systemd
cobalah untuk menghentikan semua layanan secepat mungkin. Itu melibatkan menjatuhkan jaringan dan menghentikan semua proses yang masih hidup - biasanya dalam urutan itu. Jadi ketika systemd membunuh proses SSH bercabang yang menangani sesi SSH Anda, koneksi jaringan sudah dinonaktifkan dan mereka tidak memiliki cara untuk menutup koneksi klien dengan anggun.
Pikiran pertama Anda mungkin hanya membunuh semua proses SSH sebagai langkah pertama selama shutdown, dan ada beberapa file layanan systemd di luar sana yang melakukan hal itu.
Tapi tentu saja ada solusi lebih rapi (bagaimana itu "seharusnya" dilakukan): systemd-logind
.
systemd-logind
melacak sesi pengguna aktif (lokal dan SSH) dan menetapkan semua proses yang muncul di dalamnya untuk apa yang disebut "irisan". Dengan begitu, ketika sistem dimatikan, systemd hanya dapat SIGTERM semua yang ada di dalam irisan pengguna (yang mencakup proses SSH bercabang yang menyerahkan sesi tertentu) dan kemudian terus mematikan layanan dan jaringan.
systemd-logind
membutuhkan modul PAM untuk mendapatkan pemberitahuan tentang sesi pengguna baru dan Anda harus dbus
menggunakan loginctl
untuk memeriksa statusnya, jadi instal keduanya:
apt-get install libpam-systemd dbus
Pastikan Anda /etc/ssh/sshd_config
benar-benar akan menggunakan modul UsePAM yes
.