---
name: "console-kit-daemon"
section: "1m"
platform: "linux"
package: "consolekit"
version: "1.2.6-4+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/console-kit-daemon"
---

# console-kit-daemon(1m)

ConsoleKit daemon

## NAME

console-kit-daemon - ConsoleKit daemon

## SYNOPSIS

**console-kit-daemon** \[-**-debug**\] \[-**-help**\] \[-**-no-daemon**\] \[-**-timed-exit**\]

## DESCRIPTION

**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 it.

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 deregistered.

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 **/run/ConsoleKit/database**.  It stores information about active Seats, Sessions, and the current SessionLeader.

## OPTIONS

The following options are supported:

**--debug** Enable debug output.

**-h**, -**-help** Display detailed usage message.

**--no-daemon** Avoid starting **console-kit-daemon** as a daemon.  Useful for debugging.

**--timed-exit** Exit after 30 seconds.	Useful for debugging.

## ENVIRONMENT VARIABLES

See [**environ**(5)](/environ/5.md) for descriptions of environment variables.

**DISPLAY**

This environment variable corresponds to the Xserver display value associated with the ConsoleKit session.

**XDG\_SESSION\_COOKIE**

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).

**XDG\_RUNTIME\_DIR**

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) utility.

**CK\_SESSION\_SEAT\_ID**

The seat ID associated with the session.

**CK\_SESSION\_SEAT\_UID**

The user id associated with the session

**CK\_SESSION\_DISPLAY\_DEVICE**

The display device associated with the session.

**CK\_SESSION\_X11\_DISPLAY\_DEVICE**

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 undefined.

**CK\_SESSION\_X11\_DISPLAY**

The value of the X11 DISPLAY environment variable for this session if one is present.

**CK\_SESSION\_REMOTE\_HOST\_NAME**

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.

**CK\_SESSION\_IS\_ACTIVE**

The value is "TRUE" if the session is active on the seat to which it is attached, and "FALSE" otherwise.

**CK\_SESSION\_IS\_LOCAL**

The value is "TRUE" if the session is local, and "FALSE" if remote.

**CK\_SESSION\_IS\_DYNAMIC**

The value is "TRUE" if the session was started with **ck-seat-tool**, and "FALSE" otherwise.

## EXTENDED DESCRIPTION

### ConsoleKit Seat Configuration

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 INI format.

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:

```
[Seat Entry]
[...]
Name=Customized seat name
```

The following keys are supported for configuring ConsoleKit seats:

**Seat Entry/Version=1.0**

Version number of the seat file.  This specifies the version number of the configuration file format used.  Currently only the value "1.0" is supported.

**Seat Entry/Name=Primary seat**

Name of the seat.

**Seat Entry/ID=StaticSeat**

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\]\_".

**Seat Entry/Hidden=false**

If this value is set to "false", then ConsoleKit will create this seat.  Otherwise, the seat will not be created.

**Seat Entry/Devices**

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.

**Seat Entry/Sessions=Local**

List of sessions to start on the seat, separated by the ";" character.  Each session must be defined in a ConsoleKit session configuration file named **/etc/ConsoleKit/sessions.d/***sessions*.session where *sessions* is the value of this key.

### ConsoleKit Session Configuration

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 these lines:

```
[Session Entry]
[...]
Name=Customized Session
```

The following keys are supported for configuring ConsoleKit sessions:

**Session Entry/Name**

Unique name of the session.

**Session Entry/Type**

Type of the session

**Session Entry/Description**

Description of the session.

**Session Entry/DisplayTemplate**

This specifies the display type to be used with the session.  This corresponds to the file **/etc/ConsoleKit/displays.d/***display\_template*.display where *display\_template* is the value of this key.

**Local/***variable*

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".

### ConsoleKit System Restart and Stop

**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.

## EXAMPLES

**Example 1: To start the ConsoleKit daemon**

```
example% console-kit-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:

```
[Seat Entry]
Version=1.0
Name=Primary seat
Description=start static displays :0 on vt7 and :1 on vt8
Hidden=false
Devices=
Sessions=Local;Local2;
```

Then, in addition to the original **/etc/ConsoleKit/sessions.d/Local.session** file, add the following **/etc/ConsoleKit/sessions.d/Local2.session** file:

```
[Session Entry]
Name=Local
Type=LoginWindow
Description=Local Login Screen
DisplayTemplate=Local
[Local]
display=:1
vt=/dev/vt/8
```

## SEE ALSO

More information can be found at:

**https://github.com/ConsoleKit2/ConsoleKit2**

[**ck-history**(1)](/ck-history/1.md), [**ck-launch-session**(1)](/ck-launch-session/1.md), [**ck-list-sessions**(1)](/ck-list-sessions/1.md), **svcadm**(1m), [**environ**(5)](/environ/5.md), **smf**(5), [**console**(4)](/console/4.md)

## NOTES

Brian Cameron, Sun Microsystems Inc., 2009. Copyright (c) 2009 by Sun Microsystems, Inc.

Some of the documentation in this manpage is from the ConsoleKit documentation written by William Jon McCann.
