logoalt Hacker News

cryptonectoryesterday at 9:30 PM1 replyview on HN

The problem with lock files and lock directories is that if the lock holder dies without cleaning up you now need to do something to clean up.


Replies

mscdexyesterday at 10:48 PM

On Linux, this is why I always turn to using abstract sockets when I only need local locking. Only one process can bind and the kernel cleans up automatically on process exit.

You could do the same thing with TCP/UDP, but abstract sockets give you more flexibility in naming with 108 characters vs. being forced to use a 16-bit integer. Also it means you aren't using up a port that could otherwise be used for actual network communication.

Abstract sockets also make for a nice process existence monitoring mechanism since any processes connected to the bound socket are guaranteed to be immediately notified when the process dies.