C'è una grande risposta su StackOverflow sulla fornitura di un blocco migliore per i demoni (sintetizzato da Eduardo Fleury ) che non dipende dal meccanismo di blocco dei file PID comune per i demoni. Ci sono molti buoni commenti lì sul perché i file di blocco PID a volte possono causare problemi, quindi non li riproverò qui.
In breve, la soluzione si basa su socket di dominio dello spazio dei nomi astratti di Linux, che tengono traccia dei socket in base al nome, anziché fare affidamento sui file, che possono rimanere in gioco dopo che il demone è SIGKILL'd. L'esempio mostra che Linux sembra liberare il socket una volta che il processo è morto.
Ma non riesco a trovare una documentazione definitiva in Linux che dice cosa fa esattamente Linux con il socket astratto quando il processo associato è SIGKILL. Qualcuno sa?
Detto in altro modo, quando precisamente la presa astratta viene liberata per essere riutilizzata?
Non voglio sostituire il meccanismo del file PID con socket astratti a meno che non risolva definitivamente il problema.