기술 · 실용 가이드
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, result, exit 0을 확인합니다.
CI는 updater와 실제 조건을 조정하고 evidence를 기록합니다.
