console-kit-daemon - ConsoleKit daemon
console-kit-daemon [--debug] [--help] [--no-daemon]
console-kit-daemon is a service for defining and tracking users, login
sessions and seats. It provides interfaces for managing switching sessions and
session migration when using mechanisms such as Virtual Terminals (VT).
ConsoleKit provides a number of interfaces to specify what displays are
managed by the display manager, and how.
ConsoleKit maintains a database of which users are logged into the
system. ConsoleKit groups sessions by seats which represent a set of
hardware (usually a keyboard and mouse). Other process communicate with
ConsoleKit via D-Bus.
One session leader process is responsible for asking
console-kit-daemon to open a new session. In the typical case, the
session leader would be a ConsoleKit enabled display manager, such as GDM.
This leader makes a connection to the D-Bus system bus and asks
console-kit-daemon to open a session when needed.
If the operation succeeds, console-kit-daemon will return a
cookie to the session leader. The session leader should store this variable
in the environment as XDG_SESSION_COOKIE so that it may be shared with its
child processes. The environment variable contains the UUID used to tie
processes to a session.
At this point the session will be registered with ConsoleKit and a
particular set of information about the session will be stored along with
The Session will remain open until the Session Leader disconnects
from the D-Bus system bus. The session will be removed from its seat, and
Various other programs need to know information about running user
sessions, such as the Fast User Switch Applet and other mechanisms for
switching the console to use a different VT display. Such programs make use
of ConsoleKit interfaces to determine if user switching is supported and to
manage the switching of different sessions on the same seat.
ConsoleKit provides a pam_ck_connector so that non-graphical
logins (e.g. telnet, ssh, etc.) are registered with ConsoleKit. This
functionality works if this PAM module is enabled in the pam.conf(4)
configuration. Thus ConsoleKit can be used as a utmp/wtmp replacement since
it stores a superset of the information as in the utmp/wtmp database.
The ConsoleKit database is stored in the file
/var/run/ConsoleKit/database. It stores information about active
Seats, Sessions, and the current SessionLeader.
The following options are supported:
Enable debug output.
Display detailed usage message.
Avoid starting console-kit-daemon as a daemon. Useful for
Exit after 30 seconds. Useful for debugging.
See environ(5) for descriptions of environment variables.
This environment variable corresponds to the Xserver display value associated
with the ConsoleKit session.
ConsoleKit provides this environment variable to the session leader. The
session leader is expected to ensure this is set for the session process
started. It contains a UUID used to tie the processes to the session. This
is used to support user switching on displays that support it (currently
only graphical VT displays on the console).
The XDG_RUNTIME_DIR defines the base directory to which user-specific files
and objects should be stored. The XDG_RUNTIME_DIR is the same for all
sessions of the same user and will be automatically removed once the last
session of the user is closed.
The following environment variables are set when
console-kit-daemon runs the run-seat.d scripts. These values
correspond to those values returned by the ck-list-session(1)
The seat ID associated with the session.
The user id associated with the session
The display device associated with the session.
The value of the display device that the X11 display for the session is
connected to. If there is no x11-display set, then this value is
The value of the X11 DISPLAY environment variable for this session if one is
If the session is not local, the value is the host name associated with the
session. If the session is local, the value is empty.
The value is "TRUE" if the session is active on the seat to which it
is attached, and "FALSE" otherwise.
The value is "TRUE" if the session is local, and "FALSE"
The value is "TRUE" if the session was started with
ck-seat-tool, and "FALSE" otherwise.
ConsoleKit seat configuration files are located in the /etc/ConsoleKit/seats.d
directory. Each seat configuration file ends with the .seat suffix.
ConsoleKit provides a default seat file named 00-primary.seat.
Additional seat configuration files may be added. These files are in standard
The settings below are in
"group/key=default_value" format, and show the default
values of the 00-primary.seat file. For example, to specify a
different "Seat Entry/Name" value, you would modify the this file
so it contains these lines:
Name=Customized seat name
The following keys are supported for configuring ConsoleKit
Version number of the seat file. This specifies the version number of the
configuration file format used. Currently only the value "1.0" is
Seat Entry/Name=Primary seat
Name of the seat.
Specifies the unique ID of the seat. If the value is NULL, then
console-kit-daemon will provide a value. The ID may only contain the
ASCII characters [A-Z][a=z][0-9]_".
If this value is set to "false", then ConsoleKit will create this
seat. Otherwise, the seat will not be created.
This value is not currently supported. In the future, it is planned that
ConsoleKit will provide the ability to manage how device permissions are
managed, and this key is a placeholder.
List of sessions to start on the seat, separated by the ";"
character. Each session must be defined in a ConsoleKit session
configuration file named
sessions is the value of this key.
ConsoleKit session configuration files are located in the
/etc/ConsoleKit/sessions.d directory. Each session configuration file ends
with the .session suffix. Additional seat configuration files may be
added. These files are in standard INI format.
The settings below are in "group/key" format, so to
specify the "Session Entry/Name" value, the file shoulld contain
The following keys are supported for configuring ConsoleKit
Unique name of the session.
Type of the session
Description of the session.
This specifies the display type to be used with the session. This corresponds
to the file
display_template is the value of this key.
The ConsoleKit display configuration file associated with the
"Entry/DisplayTemplate" key specifies the command to run to launch
the display. This command is defined in the ConsoleKit display configuration
file in the key "X11/Exec". This command can include variables
that begin with the "$" character, such as "$display".
The values to be used for these variables can be defined in this section. So
if the session configuration file contains the value
"Local/display=:0", this will cause the variable used when
launching the command to be replaced with the value "0".
console-kit-daemon provides D-Bus interfaces that will restart or stop
the system. When console-kit-daemon receives a D-Bus request to restart
the system, it will run the
/usr/lib/ConsoleKit/scripts/ck-system-restart script if the user has
privilege to do this operation. When console-kit-daemon receives a
D-Bus request to stop the system, it will run the
/usr/lib/ConsoleKit/scripts/ck-system-stop script if the user has
privilege to do this operation.
Example 1: To start the ConsoleKit daemon
Example 2: To configure ConsoleKit to start multiple sessions
on a single seat
To start two local displays: DISPLAY ":0" on vt7 and
DISPLAY ":1" on "vt8", edit the 00-primary.seat
file as follows:
Description=start static displays :0 on vt7 and :1 on vt8
Then, in addition to the original
/etc/ConsoleKit/sessions.d/Local.session file, add the following
Description=Local Login Screen
More information can be found at:
ck-list-sessions(1), svcadm(1m), environ(5),
Brian Cameron, Sun Microsystems Inc., 2009. Copyright (c) 2009 by Sun
Some of the documentation in this manpage is from the ConsoleKit
documentation written by William Jon McCann.