根本原因に近づくために見回す
問題は、シャットダウン時に実行されるスクリプトにあるようです。
対応するファイルを次のように識別しました:
find /etc/systemd -name *unattended*
それは私に関連するsystemdスクリプトを与えました:
/etc/systemd/system/shutdown.target.wants/unattended-upgrades.service
次に、シャットダウン時に実行されるスクリプトを教えてくれました。
/usr/share/unattended-upgrades/unattended-upgrade-shutdown
根本原因を見つけるためにさらに調査する
このスクリプトには、/ etc / apt / apt.conf.d / 50unattended-upgradesのセクションに関連する120行目のセクションがあります-> Unattended-Upgrade :: InstallOnShutdown
/ usr / share / unattended-upgrades / unattended-upgrade-shutdownの120行目:
if apt_pkg.config.find_b("Unattended-Upgrade::InstallOnShutdown", False):
問題:キーワード "False"が必要ですが、apt confでは "false"(正確な文字列比較)を追加する必要があります!
解決
私は3つの異なる方法でストールシャットダウンを修正/回避することができました:
回避策A
- /etc/apt/apt.conf.d/50unattended-upgradesに「false」ではなく「False」と記述します
ここで変更するファイルは無人アップグレードの更新によって上書きされないため、この設定は実際の修正が提供されるまでアップグレードしても安全です。問題:根本的な原因が修正されると、停止が再び停止するため、これを回避策Bと組み合わせることをお勧めします。
または:回避策B
- /etc/systemd/system/shutdown.target.wants/unattended-upgrades.serviceの待機時間をデフォルトから15秒に減らします。
vim /etc/systemd/system/shutdown.target.wants/unattended-upgrades.service
[サービス]
タイプ=ワンショット
ExecStart = / usr / share / unattended-upgrades / unattended-upgrade-shutdown
TimeoutStartSec = 15
ここで変更するファイルは、無人アップグレードの更新によって上書きされる可能性があるため、この設定はアップグレードしても安全ではありません。これに加えて、何かを修正することからはほど遠いですが、システムがシャットダウンするときに数分待たないようにします。無人アップグレードのアップグレード後に、これを再度設定する必要がある場合があることに注意してください!
または:Cを修正します(アップストリームに報告する必要があります)
- 「False」ではなく「false」を期待するように/ usr / share / unattended-upgrades / unattended-upgrades-shutdownを修正
/ usr / share / unattended-upgrades / 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 @@
# それを実行します
p =なし
apt_pkg.init_config()
-apt_pkg.config.find_b( "Unattended-Upgrade :: InstallOnShutdown"、False)の場合:
+ if apt_pkg.config.find_b( "Unattended-Upgrade :: InstallOnShutdown"、false):
env = copy.copy(os.environ)
env ["UNATTENDED_UPGRADES_FORCE_INSTALL_ON_SHUTDOWN"] = "1"
logging.debug( "シャットダウンモードでの無人アップグレードの開始")
結論
tbh最後の1つだけが本当の修正です。他の両方のオプションは、実際の修正が実装されるまでの単なる回避策です。
これはアップストリームで行う必要があり、これは両方のディストリビューションのDebian(Debian Stretchでテスト済み)とUbuntu(Ubuntu 16.04.1でテスト済み)の両方に影響するためです。
ここでバグレポートを開きました:https : //bugs.launchpad.net/ubuntu/+source/unattended-upgrades/+bug/1661611