lckdo is a utility for controlling the invocation of another program based on a lock file. It supports both shared (read) and exclusive (write) locks and can wait for a configurable amount of time for the lock to become free. lckdo is commonly used to make automated rsync mirroring more robust.