X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=man%2Forg.freedesktop.login1.xml;h=1b7c3b642133b2d2fc5a1467faf8ad51136bfde9;hb=6b49257f6b92c1bcdf02ca0e896009da36ed9bb0;hp=84dded384919355a6cfe4a2c3c12f16657c827c9;hpb=0d5071fb294d9a0ee3b4839b336a3266a673e84b;p=thirdparty%2Fsystemd.git diff --git a/man/org.freedesktop.login1.xml b/man/org.freedesktop.login1.xml index 84dded38491..1b7c3b64213 100644 --- a/man/org.freedesktop.login1.xml +++ b/man/org.freedesktop.login1.xml @@ -38,11 +38,7 @@ The service exposes the following interfaces on the Manager object on the bus: - -$ gdbus introspect --system \ - --dest org.freedesktop.login1 \ - --object-path /org/freedesktop/login1 - + node /org/freedesktop/login1 { interface org.freedesktop.login1.Manager { methods: @@ -221,6 +217,8 @@ node /org/freedesktop/login1 { @org.freedesktop.DBus.Property.EmitsChangedSignal("const") readonly t RuntimeDirectorySize = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("const") + readonly t RuntimeDirectoryInodesMax = ...; + @org.freedesktop.DBus.Property.EmitsChangedSignal("const") readonly t InhibitorsMax = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly t NCurrentInhibitors = ...; @@ -235,6 +233,212 @@ node /org/freedesktop/login1 { }; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Methods @@ -292,22 +496,24 @@ node /org/freedesktop/login1 { and seat are identified by their respective IDs. SetUserLinger() enables or disables user lingering. If enabled, the runtime - directory of a user is kept around and he may continue to run processes while he is logged out. If + directory of a user is kept around and they may continue to run processes while logged out. If disabled, the runtime directory goes away as soon as they log out. SetUserLinger() expects three arguments: the UID, a boolean whether to enable/disable and a boolean controlling the - PolicyKit authorization interactivity (see below). Note that the user linger state is persistently + polkit + authorization interactivity (see below). Note that the user linger state is persistently stored on disk. AttachDevice() may be used to assign a specific device to a specific - seat. The device is identified by its /sys path and must be eligible for seat assignments. AttachDevice() takes three - arguments: the seat id, the sysfs path, and a boolean for controlling PolicyKit interactivity (see - below). Device assignments are persistently stored on disk. To create a new seat, simply specify a - previously unused seat id. For more information about the seat assignment logic see + seat. The device is identified by its /sys path and must be eligible for seat + assignments. AttachDevice() takes three arguments: the seat id, the sysfs path, + and a boolean for controlling polkit interactivity (see below). Device assignments are persistently + stored on disk. To create a new seat, simply specify a previously unused seat id. For more information + about the seat assignment logic see Multi-Seat for Linux. FlushDevices() removes all explicit seat assignments for devices, resetting - all assignments to the automatic defaults. The only argument it takes is the PolicyKit interactivity + all assignments to the automatic defaults. The only argument it takes is the polkit interactivity boolean (see below). PowerOff(), Reboot(), Halt(), @@ -317,9 +523,9 @@ node /org/freedesktop/login1 { the machine is powered down). HybridSleep() results in the system entering a hybrid-sleep mode, i.e. the system is both hibernated and suspended. SuspendThenHibernate() results in the system being suspended, then later woken - using an RTC timer and hibernated. The only argument is the PolicyKit interactivity boolean + using an RTC timer and hibernated. The only argument is the polkit interactivity boolean interactive (see below). The main purpose of these calls is that they enforce - PolicyKit policy and hence allow powering off/rebooting/suspending/hibernating even by unprivileged + polkit policy and hence allow powering off/rebooting/suspending/hibernating even by unprivileged users. They also enforce inhibition locks. UIs should expose these calls as the primary mechanism to poweroff/reboot/suspend/hibernate the machine. @@ -361,7 +567,7 @@ node /org/freedesktop/login1 { SetWallMessage() sets the wall message (the message that will be sent out to all terminals and stored in a - utmp5 record) for a + utmp5 record) for a subsequent scheduled shutdown operation. The parameter wall_message specifies the shutdown reason (and may be empty) which will be included in the shutdown message. The parameter enable specifies whether to print a wall message on shutdown. @@ -377,7 +583,7 @@ node /org/freedesktop/login1 { should be a short human readable string identifying the reason why the lock is taken. Finally, mode is either block or delay which encodes whether the inhibit shall be consider mandatory or whether it should just delay the operation to a - certain maximum time. The call returns a file descriptor. The lock is released the moment this file + certain maximum time. The method returns a file descriptor. The lock is released the moment this file descriptor and all its duplicates are closed. For more information on the inhibition logic see Inhibitor Locks. @@ -421,7 +627,8 @@ node /org/freedesktop/login1 { HandleLidSwitchExternalPower, HandleLidSwitchDocked, IdleActionUSec, HoldoffTimeoutUSec, RemoveIPC, RuntimeDirectorySize, - InhibitorsMax, and SessionsMax. + RuntimeDirectoryInodesMax, InhibitorsMax, and + SessionsMax. The IdleHint property reflects the idle hint state of the system. If the @@ -474,7 +681,7 @@ node /org/freedesktop/login1 { Security - A number of operations are protected via the PolicyKit privilege + A number of operations are protected via the polkit privilege system. SetUserLinger() requires the org.freedesktop.login1.set-user-linger privilege. AttachDevice() requires @@ -527,7 +734,7 @@ node /org/freedesktop/login1 { org.freedesktop.login1.inhibit-handle-lid-switch depending on the lock type and mode taken. - The interactive boolean parameters can be used to control whether PolicyKit + The interactive boolean parameters can be used to control whether polkit should interactively ask the user for authentication credentials if required. @@ -535,10 +742,7 @@ node /org/freedesktop/login1 { Seat Objects - -$ gdbus introspect --system --dest org.freedesktop.login1 \ - --object-path /org/freedesktop/login1/seat/seat0 - + node /org/freedesktop/login1/seat/seat0 { interface org.freedesktop.login1.Seat { methods: @@ -552,8 +756,6 @@ node /org/freedesktop/login1/seat/seat0 { readonly s Id = '...'; readonly (so) ActiveSession = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("const") - readonly b CanMultiSession = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("const") readonly b CanTTY = ...; readonly b CanGraphical = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") @@ -568,6 +770,40 @@ node /org/freedesktop/login1/seat/seat0 { }; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Methods @@ -585,7 +821,7 @@ node /org/freedesktop/login1/seat/seat0 { Signals Whenever ActiveSession, Sessions, - CanGraphical, CanMultiSession and CanTTY + CanGraphical, CanTTY, or the idle state changes, PropertyChanged signals are sent out to which clients can subscribe. @@ -598,26 +834,22 @@ node /org/freedesktop/login1/seat/seat0 { ActiveSession encodes the currently active session if there is one. It is a structure consisting of the session id and the object path. - CanMultiSession encodes whether the session is multi-session capable, - CanTTY whether it is suitable for text logins, CanGraphical - whether it is suitable for graphical sessions. + CanTTY encodes whether the session is suitable for text logins, and + CanGraphical whether it is suitable for graphical sessions. The Sessions property is an array of all current sessions of this seat, each encoded in a structure consisting of the ID and the object path. The IdleHint, IdleSinceHint, and - IdleSinceHint properties encode the idle state, similar to the one exposed on the - Manager object, but specific for this seat. + IdleSinceHintMonotonic properties encode the idle state, similar to the ones exposed + on the Manager object, but specific for this seat. User Objects - -$ gdbus introspect --system --dest org.freedesktop.login1 \ - --object-path /org/freedesktop/login1/user/_1000 - + node /org/freedesktop/login1/user/_1000 { interface org.freedesktop.login1.User { methods: @@ -657,6 +889,48 @@ node /org/freedesktop/login1/user/_1000 { }; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Methods @@ -720,11 +994,8 @@ node /org/freedesktop/login1/user/_1000 { Session Objects - -$ gdbus introspect --system --dest org.freedesktop.login1 \ - --object-path /org/freedesktop/login1/session/45 - -node /org/freedesktop/login1/session/45 { + +node /org/freedesktop/login1/session/1 { interface org.freedesktop.login1.Session { methods: Terminate(); @@ -737,6 +1008,7 @@ node /org/freedesktop/login1/session/45 { in i signal_number); TakeControl(in b force); ReleaseControl(); + SetType(in s type); TakeDevice(in u major, in u minor, out h fd, @@ -792,7 +1064,6 @@ node /org/freedesktop/login1/session/45 { readonly u Leader = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("const") readonly u Audit = ...; - @org.freedesktop.DBus.Property.EmitsChangedSignal("const") readonly s Type = '...'; @org.freedesktop.DBus.Property.EmitsChangedSignal("const") readonly s Class = '...'; @@ -809,6 +1080,100 @@ node /org/freedesktop/login1/session/45 { }; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Methods @@ -822,13 +1187,20 @@ node /org/freedesktop/login1/session/45 { TakeControl() allows a process to take exclusive managed device access-control for that session. Only one D-Bus connection can be a controller for a given session at any time. If the force argument is set (root only), an existing controller is kicked - out and replaced. Otherwise, this call fails if there is already a controller. Note that this call is + out and replaced. Otherwise, this method fails if there is already a controller. Note that this method is limited to D-Bus users with the effective UID set to the user of the session or root. - ReleaseControl() drops control of a given session. Closing the - D-Bus connection implicitly releases control as well. See TakeControl() for more information. This - method also releases all devices for which the controller requested ownership via TakeDevice(). - + ReleaseControl() drops control of a given session. Closing the D-Bus + connection implicitly releases control as well. See TakeControl() for more + information. This method also releases all devices for which the controller requested ownership via + TakeDevice(). + + SetType() allows the type of the session to be changed dynamically. It can + only be called by session's current controller. If TakeControl() has not been + called, this method will fail. In addition, the session type will be reset to its original value once + control is released, either by calling ReleaseControl() or closing the D-Bus + connection. This should help prevent a session from entering an inconsistent state, for example if the + controller crashes. The only argument type is the new session type. TakeDevice() allows a session controller to get a file descriptor for a specific device. Pass in the major and minor numbers of the character device and @@ -973,6 +1345,42 @@ node /org/freedesktop/login1/session/45 { + + Examples + + + Introspect <interfacename>org.freedesktop.login1.Manager</interfacename> on the bus + + $ gdbus introspect --system --dest org.freedesktop.login1 \ + --object-path /org/freedesktop/login1 + + + + + Introspect <interfacename>org.freedesktop.login1.Seat</interfacename> on the bus + + $ gdbus introspect --system --dest org.freedesktop.login1 \ + --object-path /org/freedesktop/login1/seat/seat0 + + + + + Introspect <interfacename>org.freedesktop.login1.User</interfacename> on the bus + + $ gdbus introspect --system --dest org.freedesktop.login1 \ + --object-path /org/freedesktop/login1/user/_1000 + + + + + Introspect <interfacename>org.freedesktop.login1.Session</interfacename> on the bus + + $ gdbus introspect --system --dest org.freedesktop.login1 \ + --object-path /org/freedesktop/login1/session/45 + + + + Versioning