Locket implements a file-based lock that can be used by multiple processes provided they use the same path.