Scroll to navigation

turnstiled.conf(5) File Formats Manual turnstiled.conf(5)

NAME

turnstiled.conf - the turnstiled(8) configuration file

DESCRIPTION

The file turnstiled.conf contains the daemon's configuration. It typically resides in /etc/turnstile (or your sysconfdir of choice).

While the daemon can run without any configuration file thanks to its built-in defaults, there are many options that the user may want to adjust to their liking.

SYNTAX

The configuration file has a simple line-based syntax. Each option line consists of the option name and option value separated by the '=' symbol.

Comments start with the '#' symbol. All whitespace is ignored, including lines containing only whitespace, trailing whitespace, leading whitespace and whitespace inbetween names.

Only 1024 characters at most are read per line, including whitespace. If longer, the rest is simply ignored.

OPTIONS

This is the list of possible options, with their type and default value, as well as additional description.

Boolean options accept only the values yes and no. Other options may accept more values.

debug (boolean: no)

Whether to output debug information. This is verbose logging that is only useful when investigating issues.

backend (string: dinit)

The service backend to use. The default is build-dependent and in this case is set to suss.

Can also be set to none to disable the service backend. In that case, nothing will be spawned, but the daemon will still perform login tracking and auxiliary tasks such as rundir management.

debug_stderr (boolean: no)

Whether to print debug messages also to stderr.

linger (combo: maybe)

Whether to keep already started services running even after the last login of the user is gone. The default behavior is to stop them unless a file with the same name as the user exists in /var/lib/turnstiled/linger.

It is not necessary to log in and out when the linger directory is changed, as the current state is checked upon last logout.

Note that lingering is disabled when manage_rundir is set to no. That is because various user services may be relying on the rundir's existence, and it cannot be deleted until the user is gone. This is overridable with an environment variable (for those who worked around it on their own).

Valid values are yes, no and maybe.

rundir_path (string: /run/user/%u)

The value of $XDG_RUNTIME_DIR that is exported into the user service environment. Special values %u (user ID), %g (group ID) and %% (the character '%') are allowed and substituted in the string. Set to empty string if you want to prevent it from being exported altogether.

It must not end with a slash, be relative or be just the root filesystem.

If you are using elogind, you should not mess with this path, and doing so will result in subtly broken systems. You should in general not mess with this path.

manage_rundir (boolean: no)

Whether to manage the $XDG_RUNTIME_DIR. This may conflict with other rundir management methods, such as elogind, so when turning it on, make sure this is not the case.

It is a requirement for the linger functionality to work.

The default is dependent on the build.

export_dbus_address (boolean: yes)

Whether to export $DBUS_SESSION_BUS_ADDRESS into the environment. When enabled, this will be exported and set to 'unix:path=RUNDIR/bus' where RUNDIR is the expanded value of rundir_path. This works regardless of if rundir is managed.

login_timeout (integer: 60)

The timeout for the login (in seconds). If the user services that are a part of the initial startup process take longer than this, the service manager instance is terminated and all connections to the session are closed.

root_session (boolean: no)

Whether to run a user service manager for root logins. By default, the root login is tracked but service manager is not run for it. If you override that, the root user is treated like any other user and will have its own user services. This may result in various gotchas, such root having a session bus, and so on.
2026-02-25