Il y a une excellente réponse sur StackOverflow pour fournir un meilleur verrouillage pour les démons (synthétisé à partir d' Eduardo Fleury ) qui ne dépend pas du mécanisme de verrouillage de fichier PID commun pour les démons. Il y a beaucoup de bons commentaires sur les raisons pour lesquelles les fichiers de verrouillage PID peuvent parfois causer des problèmes, donc je ne les retravaillerai pas ici.
En bref, la solution s'appuie sur des sockets de domaine d'espace de noms abstraits Linux, qui gardent une trace des sockets par nom, plutôt que de s'appuyer sur des fichiers, qui peuvent rester après que le démon soit SIGKILL. L'exemple montre que Linux semble libérer le socket une fois le processus mort.
Mais je ne trouve pas de documentation définitive sous Linux qui indique exactement ce que fait Linux avec la socket abstraite lorsque le processus lié est SIGKILL. Est-ce que quelqu'un sait?
Autrement dit, quand précisément la prise abstraite est-elle libérée pour être réutilisée?
Je ne veux pas remplacer le mécanisme de fichier PID par des sockets abstraites à moins qu'il ne résout définitivement le problème.