16.04以降のシステムでは、無人アップグレードが毎日ランダムな時間に実行されます。
無人アップグレードが今日実行される時期を確認する方法:
ランダムな時間はcronジョブ(/etc/cron.daily/apt.compat)によって設定され、systemdに問い合わせることで今日のランダムな時間を読み取ることができます。
$ systemctl list-timers apt-daily.timer
NEXT LEFT LAST PASSED UNIT ACTIVATES
Tue 2017-07-11 01:53:29 CDT 13h left Mon 2017-07-10 11:22:40 CDT 1h 9min ago apt-daily.timer apt-daily.service
この場合、uuが1時間9分前に実行されたことがわかります。
無人アップグレードがまだ実行されているかどうかを確認する方法:
簡単な方法の1つは、さまざまなaptコンポーネントのタイムスタンプファイルを確認することです。
$ ls -l /var/lib/apt/periodic/
total 0
-rw-r--r-- 1 root root 0 Jul 10 11:24 unattended-upgrades-stamp
-rw-r--r-- 1 root root 0 Jul 10 11:23 update-stamp
-rw-r--r-- 1 root root 0 Jul 10 11:24 update-success-stamp
-rw-r--r-- 1 root root 0 Jul 10 11:24 upgrade-stamp
ここで、uuは単なる別のaptコンポーネントであることがわかります。aptは、aptの起動方法に関係なく、ここにタイムスタンプを配置します。
データをまとめると、タイマーが11:22にapt(uu)を開始したことがわかります。11:23に完了するアップデートを実行し、11:24に完了するアップグレードを実行しました。最後に、aptがアップグレードを成功(エラーやその他の失敗なし)と見なしたことがわかります。
明らかに、対応する完了タイムスタンプのない最近のタイマーps
が表示される場合、aptがまだ実行されているかどうかを確認する必要があります。
aptが現在実行しているステップを確認する方法:
簡単な方法の1つは、uuログファイルを確認することです。
$ less /var/log/unattended-upgrades/unattended-upgrades.log
2017-07-10 11:23:00,348 INFO Initial blacklisted packages:
2017-07-10 11:23:00,349 INFO Initial whitelisted packages:
2017-07-10 11:23:00,349 INFO Starting unattended upgrades script
2017-07-10 11:23:00,349 INFO Allowed origins are: ['o=Ubuntu,a=zesty-security', 'o=Ubuntu,a=zesty-updates']
2017-07-10 11:23:10,485 INFO Packages that will be upgraded: apport apport-gtk libpoppler-glib8 libpoppler-qt5-1 libpoppler64 poppler-utils python3-apport python3-problem-report
2017-07-10 11:23:10,485 INFO Writing dpkg log to '/var/log/unattended-upgrades/unattended-upgrades-dpkg.log'
2017-07-10 11:24:20,419 INFO All upgrades installed
ここでは、「開始済み」行と「完了済み」行を含む通常の毎日のプロセス、およびアップグレードしようとしているパッケージのリストを確認できます。
パッケージのリストがまだログに記録されていない場合、aptは安全に中断できます。パッケージのリストが記録されたら、aptを中断しないでください。
リソースに制約のある環境があるため、さまざまな実行時間、適切なレベル、帯域幅制限、およびその他の多くの便利な設定で確実かつ控えめに動作する多くの方法でaptを構成できることに注意してください。
pgrep -fl apt
、私は思う。