Melihat sekeliling untuk lebih dekat ke akar permasalahan
Masalahnya tampaknya skrip berjalan saat shutdown.
Saya mengidentifikasi file yang sesuai dengan:
find /etc/systemd -name *unattended*
yang memberi saya skrip systemd terkait:
/etc/systemd/system/shutdown.target.wants/unattended-upgrades.service
yang kemudian memberi tahu saya skrip dieksekusi pada shutdown:
/usr/share/unattended-upgrades/unattended-upgrade-shutdown
Investigasi lebih dalam untuk menemukan akar masalahnya
dalam skrip ini ada bagian dalam baris 120 yang terkait dengan bagian di /etc/apt/apt.conf.d/50unattended-upgrades -> Unattended-Upgrade :: InstallOnShutdown
Baris 120 dari / usr / share / upgrade tanpa pengawasan / unattended-upgrade-shutdown:
if apt_pkg.config.find_b("Unattended-Upgrade::InstallOnShutdown", False):
Masalahnya: ia mengharapkan kata kunci "Salah" sementara di apt conf kita harus menambahkan "false" (perbandingan string yang tepat)!
Larutan
Saya bisa memperbaiki / menyelesaikan shutdown dengan 3 cara berbeda:
Penanganan masalah A
- tulis "False" alih-alih "false" di /etc/apt/apt.conf.d/50unattended-upgrades
Pengaturan ini pemutakhiran aman hingga perbaikan nyata diberikan karena file yang kami ubah di sini tidak akan ditimpa oleh pembaruan peningkatan tanpa pengawasan. Masalah: Ketika akar permasalahan diperbaiki, ini akan menghasilkan penghentian macet lagi, jadi saya sarankan untuk menggabungkan ini dengan Workaround B.
ATAU: Penanganan Masalah B
- kurangi waktu tunggu di /etc/systemd/system/shutdown.target.wants/unattended-upgrades.service dari default menjadi 15 detik:
vim /etc/systemd/system/shutdown.target.wants/unattended-upgrades.service
[Layanan]
Ketik = oneshot
ExecStart = / usr / share / unattended-upgrade / unattended-upgrade-shutdown
TimeoutStartSec = 15
Pengaturan ini BUKAN pemutakhiran yang aman karena file yang kami ubah di sini mungkin akan ditimpa oleh pembaruan peningkatan tanpa pengawasan. Selain itu ini sangat jauh dari memperbaiki sesuatu tetapi akan memastikan bahwa sistem Anda tidak akan menunggu beberapa menit ketika dimatikan. Ingatlah bahwa setelah peningkatan tanpa pengawasan, Anda mungkin harus mengatur ini lagi!
ATAU: Perbaiki C (harus dilaporkan ke hulu)
- fix / usr / share / unattended-upgrade / unattended-upgrade-shutdown untuk mengharapkan "false", bukan "False"
menambal / usr / share / upgrade tanpa pengawasan / unattended-upgrade-shutdown:
--- / tmp / unattended-upgrade-shutdown 2017-02-03 14: 53: 03.238103238 +0100
+++ / tmp / unattended-upgrade-shutdown_fix 2017-02-03 14: 53: 17.685589001 +0100
@@ -117,7 +117,7 @@
# menjalankannya
p = Tidak Ada
apt_pkg.init_config ()
- if apt_pkg.config.find_b ("Peningkatan tanpa pengawasan :: InstallOnShutdown", Salah):
+ if apt_pkg.config.find_b ("Peningkatan tanpa pengawasan :: InstallOnShutdown", false):
env = copy.copy (os.environ)
env ["UNATTENDED_UPGRADES_FORCE_INSTALL_ON_SHUTDOWN"] = "1"
logging.debug ("memulai peningkatan tanpa pengawasan dalam mode mematikan")
Kesimpulan
tbh hanya yang terakhir adalah perbaikan nyata. kedua opsi lainnya hanya solusi sampai perbaikan nyata akan dilaksanakan.
Ini harus dilakukan di hulu dan karena ini mempengaruhi baik Debian (diuji pada Debian Stretch) dan Ubuntu (diuji pada Ubuntu 16.04.1) untuk kedua distribusi.
Saya telah membuka laporan bug di sini: https://bugs.launchpad.net/ubuntu/+source/unattended-upgrades/+bug/1661611