テクノロジー · 実用ガイド

APT の「Could not get lock」?process を止める前に package transaction を証明

lock は一つの transaction を保護します。holder と progress を確認し、bounded wait または graceful stop を選び、lock file は削除しません。

APT/dpkg lock owner 図
オリジナルイラスト:lock、owner、phase。 Watch at Ease

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 を記録します。

Safe recovery path
オリジナルイラスト:wait/stop、audit、verify。 Watch at Ease