The s6lockd program

s6lockd is the s6lock daemon. It is a program that manages a set of lock files in a given directory, and associated timeouts.


s6lockd does not fork, does not background itself automatically, and does not use syslog. It is not meant to be run directly by the user: it will be spawned by the s6lock client library.

There are 2 ways to use s6lockd:

  1. Use the s6lock_startf() library call. A s6lockd child will then be spawned from your calling process, and automatically reaped when you call s6lock_end(). It requires care with applications that trap SIGCHLD. It also requires care with lock file permissions: a s6lockd instance might not be able to open a lock file created by a former instance run by another client with different permissions.
  2. Use the s6lock_start() library call, together with a s6lockd service. For once, this is the recommended setup: s6lockd creates empty lock files, and having all s6lockd instances run under the same user simplifies permissions management considerably.

When run as a service, s6lockd has no "standalone" mode: it is designed to work with a Unix domain superserver, like s6-ipcserver. s6lockd follows the UCSPI interface, it can be directly executed from the superserver.