テクノロジー · 実用ガイド
APT の「Could not get lock」?process を止める前に package transaction を証明
lock は一つの transaction を保護します。holder と progress を確認し、bounded wait または graceful stop を選び、lock file は削除しません。

lock は一つの transaction を保護します。holder と progress を確認し、bounded wait または graceful stop を選び、lock file は削除しません。
frontend lock は dpkg access を調整します。 PID は holder evidence で kill 許可ではありません。
1. error と lock を保存
output、exit、path、PID、command を保存し、複数 lock を混同しません。
pathname の unlink は open object を閉じず second writer を許し得ます。
2. holder と phase を証明
PID、parent、start、command と updater/apt/dpkg/cloud-init owner を確認します。
logs、children、open files、CPU/I/O で progress を観察します。
3. wait または approved stop
active work は bounded wait、fixed sleep は避けます。
stuck で policy 承認済みなら graceful stop し exit を待ちます。
4. package state を audit
interruption 後は dpkg --audit と logs で pending state を確認します。
dpkg --configure -a は evidence がある場合だけ実行します。
5. original action を再試験
original APT action を再実行し lock acquisition、result、exit 0 を確認します。
CI は updater と条件同期し evidence を記録します。
