SeatRemoved(s seat_id,
o object_path);
PrepareForShutdown(b start);
+ PrepareForShutdownWithMetadata(b start,
+ a{sv} metadata);
PrepareForSleep(b start);
properties:
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
<variablelist class="dbus-signal" generated="True" extra-ref="PrepareForShutdown"/>
+ <variablelist class="dbus-signal" generated="True" extra-ref="PrepareForShutdownWithMetadata"/>
+
<variablelist class="dbus-signal" generated="True" extra-ref="PrepareForSleep"/>
<variablelist class="dbus-property" generated="True" extra-ref="EnableWallMessages"/>
<para><function>PowerOff()</function>, <function>Reboot()</function>, <function>Halt()</function>,
<function>Suspend()</function>, and <function>Hibernate()</function> result in the system being powered
- off, rebooted, halted (shut down without turning off power), suspended (the system state is
- saved to RAM and the CPU is turned off), or hibernated (the system state is saved to disk and
- the machine is powered down). <function>HybridSleep()</function> results in the system entering a
- hybrid-sleep mode, i.e. the system is both hibernated and suspended.
- <function>SuspendThenHibernate()</function> results in the system being suspended, then later woken
- using an RTC timer and hibernated. The only argument is the polkit interactivity boolean
- <varname>interactive</varname> (see below). The main purpose of these calls is that they enforce
- polkit policy and hence allow powering off/rebooting/suspending/hibernating even by unprivileged
- users. They also enforce inhibition locks for non-privileged users. UIs should expose these calls
- as the primary mechanism to poweroff/reboot/suspend/hibernate the machine. Methods
+ off, rebooted, halted (shut down without turning off power), suspended (the system state is saved to
+ RAM and the CPU is turned off), or hibernated (the system state is saved to disk and the machine is
+ powered down). <function>HybridSleep()</function> results in the system entering a hybrid-sleep mode,
+ i.e. the system is both hibernated and suspended. <function>SuspendThenHibernate()</function> results
+ in the system being suspended, then later woken using an RTC timer and hibernated. The only argument is
+ the polkit interactivity boolean <varname>interactive</varname> (see below). The main purpose of these
+ calls is that they enforce polkit policy and hence allow powering off/rebooting/suspending/hibernating
+ even by unprivileged users. They also enforce inhibition locks for non-privileged users. UIs should
+ expose these calls as the primary mechanism to poweroff/reboot/suspend/hibernate the machine. Methods
<function>PowerOffWithFlags()</function>, <function>RebootWithFlags()</function>,
<function>HaltWithFlags()</function>, <function>SuspendWithFlags()</function>,
<function>HibernateWithFlags()</function>, <function>HybridSleepWithFlags()</function> and
<programlisting>
#define SD_LOGIND_ROOT_CHECK_INHIBITORS (UINT64_C(1) << 0)
#define SD_LOGIND_KEXEC_REBOOT (UINT64_C(1) << 1)
+#define SD_LOGIND_SOFT_REBOOT (UINT64_C(1) << 2)
</programlisting>
- <para> When the <varname>flags</varname> is 0 then these methods behave just like the versions
- without flags. When <constant>SD_LOGIND_ROOT_CHECK_INHIBITORS</constant> (0x01) is set, active
- inhibitors are honoured for privileged users too. When <constant>SD_LOGIND_KEXEC_REBOOT</constant>
- (0x02) is set, then <function>RebootWithFlags()</function> perform kexec reboot if kexec
- kernel is loaded.</para>
+ <para>When the <varname>flags</varname> is 0 then these methods behave just like the versions without
+ flags. When <constant>SD_LOGIND_ROOT_CHECK_INHIBITORS</constant> (0x01) is set, active inhibitors are
+ honoured for privileged users too. When <constant>SD_LOGIND_KEXEC_REBOOT</constant> (0x02) is set, then
+ <function>RebootWithFlags()</function> performs a kexec reboot if kexec kernel is loaded. When
+ <constant>SD_LOGIND_SOFT_REBOOT</constant> (0x04) is set, then <function>RebootWithFlags()</function>
+ performs a userspace reboot only.</para>
<para><function>SetRebootParameter()</function> sets a parameter for a subsequent reboot operation.
See the description of <command>reboot</command> in
logs in or out, or a seat is added or removed. They each contain the ID of the object plus the object
path.</para>
- <para>The <function>PrepareForShutdown()</function> and <function>PrepareForSleep()</function> signals
- are sent right before (with the argument <literal>true</literal>) or after (with the argument
+ <para>The <function>PrepareForShutdown</function>,
+ <function>PrepareForShutdownWithMetadata</function>, and <function>PrepareForSleep</function>
+ signals are sent right before (with the argument <literal>true</literal>) or after (with the argument
<literal>false</literal>) the system goes down for reboot/poweroff and suspend/hibernate,
respectively. This may be used by applications to save data on disk, release memory, or do other jobs
that should be done shortly before shutdown/sleep, in conjunction with delay inhibitor locks. After
completion of this work they should release their inhibition locks in order to not delay the operation
any further. For more information see
- <ulink url="https://www.freedesktop.org/wiki/Software/systemd/inhibit">Inhibitor Locks</ulink>.
- </para>
+ <ulink url="https://www.freedesktop.org/wiki/Software/systemd/inhibit">Inhibitor Locks</ulink>. The
+ <function>PrepareForShutdownWithMetadata()</function> signal additionally sends a list of key/value
+ pair metadata fields. Currently it sends a <varname>type</varname> string which defines the type of
+ shutdown. The type can be one of <literal>power-off</literal>, <literal>reboot</literal>,
+ <literal>halt</literal>, <literal>kexec</literal> or <literal>soft-reboot</literal>. This signal is
+ sent first, followed by <function>PrepareForShutdown</function> (for backward compatibility).</para>
</refsect2>
<refsect2>
</refsect1>
<xi:include href="org.freedesktop.locale1.xml" xpointer="versioning"/>
+
+ <refsect1>
+ <title>History</title>
+ <refsect2>
+ <title>The Manager Object</title>
+ <para><varname>HandlePowerKeyLongPress</varname>,
+ <varname>HandleRebootKey</varname>,
+ <varname>HandleRebootKeyLongPress</varname>,
+ <varname>HandleSuspendKeyLongPress</varname>, and
+ <varname>HandleHibernateKeyLongPress</varname> were added in version 251.</para>
+ <para><varname>StopIdleSessionUSec</varname> was added in version 252.</para>
+ <para><function>PrepareForShutdownWithMetadata</function> was added in version 255.</para>
+ </refsect2>
+ <refsect2>
+ <title>Session Objects</title>
+ <para><function>SetDisplay()</function> was added in version 252.</para>
+ <para><function>SetTTY()</function> was added in version 254.</para>
+ </refsect2>
+ </refsect1>
</refentry>