Há uma ótima resposta no StackOverflow sobre o fornecimento de um bloqueio melhor para daemons (sintetizado a partir de Eduardo Fleury ) que não depende do mecanismo de bloqueio de arquivo PID comum para daemons. Existem muitos comentários bons sobre por que os arquivos de bloqueio PID às vezes podem causar problemas, por isso não os refiz aqui.
Em resumo, a solução conta com soquetes de domínio de espaço para nome abstrato do Linux, que rastreia os soquetes por nome para você, em vez de depender de arquivos, que podem permanecer depois que o daemon é SIGKILL. O exemplo mostra que o Linux parece liberar o soquete assim que o processo termina.
Mas não consigo encontrar documentação definitiva no Linux que diga o que exatamente o Linux faz com o soquete abstrato quando o processo vinculado é SIGKILL'd. Alguém sabe?
Em outras palavras, quando exatamente o soquete abstrato é liberado para ser usado novamente?
Não quero substituir o mecanismo de arquivo PID por soquetes abstratos, a menos que resolva definitivamente o problema.