drop support for MANAGER_SESSION, introduce MANAGER_USER instead

This commit is contained in:
Lennart Poettering 2010-11-15 22:12:41 +01:00
parent 62347bc24a
commit af2d49f70b
26 changed files with 160 additions and 142 deletions

View File

@ -30,9 +30,9 @@ bashcompletiondir=$(sysconfdir)/bash_completion.d
# Our own, non-special dirs # Our own, non-special dirs
pkgsysconfdir=$(sysconfdir)/systemd pkgsysconfdir=$(sysconfdir)/systemd
sessionunitdir=$(pkgdatadir)/session userunitdir=$(pkgdatadir)/user
tmpfilesdir=$(sysconfdir)/tmpfiles.d tmpfilesdir=$(sysconfdir)/tmpfiles.d
sessiongeneratordir=$(pkglibexecdir)/session-generators usergeneratordir=$(pkglibexecdir)/user-generators
# And these are the special ones for / # And these are the special ones for /
rootdir=@rootdir@ rootdir=@rootdir@
@ -49,9 +49,9 @@ AM_CPPFLAGS = \
-DSYSTEM_DATA_UNIT_PATH=\"$(systemunitdir)\" \ -DSYSTEM_DATA_UNIT_PATH=\"$(systemunitdir)\" \
-DSYSTEM_SYSVINIT_PATH=\"$(SYSTEM_SYSVINIT_PATH)\" \ -DSYSTEM_SYSVINIT_PATH=\"$(SYSTEM_SYSVINIT_PATH)\" \
-DSYSTEM_SYSVRCND_PATH=\"$(SYSTEM_SYSVRCND_PATH)\" \ -DSYSTEM_SYSVRCND_PATH=\"$(SYSTEM_SYSVRCND_PATH)\" \
-DSESSION_CONFIG_FILE=\"$(pkgsysconfdir)/session.conf\" \ -DUSER_CONFIG_FILE=\"$(pkgsysconfdir)/user.conf\" \
-DSESSION_CONFIG_UNIT_PATH=\"$(pkgsysconfdir)/session\" \ -DUSER_CONFIG_UNIT_PATH=\"$(pkgsysconfdir)/user\" \
-DSESSION_DATA_UNIT_PATH=\"$(sessionunitdir)\" \ -DUSER_DATA_UNIT_PATH=\"$(userunitdir)\" \
-DSYSTEMD_CGROUP_AGENT_PATH=\"$(rootlibexecdir)/systemd-cgroups-agent\" \ -DSYSTEMD_CGROUP_AGENT_PATH=\"$(rootlibexecdir)/systemd-cgroups-agent\" \
-DSYSTEMD_BINARY_PATH=\"$(rootbindir)/systemd\" \ -DSYSTEMD_BINARY_PATH=\"$(rootbindir)/systemd\" \
-DSYSTEMD_SHUTDOWN_BINARY_PATH=\"$(rootlibexecdir)/systemd-shutdown\" \ -DSYSTEMD_SHUTDOWN_BINARY_PATH=\"$(rootlibexecdir)/systemd-shutdown\" \
@ -61,7 +61,7 @@ AM_CPPFLAGS = \
-DRANDOM_SEED=\"$(localstatedir)/lib/random-seed\" \ -DRANDOM_SEED=\"$(localstatedir)/lib/random-seed\" \
-DSYSTEMD_CRYPTSETUP_PATH=\"$(rootlibexecdir)/systemd-cryptsetup\" \ -DSYSTEMD_CRYPTSETUP_PATH=\"$(rootlibexecdir)/systemd-cryptsetup\" \
-DSYSTEM_GENERATOR_PATH=\"$(systemgeneratordir)\" \ -DSYSTEM_GENERATOR_PATH=\"$(systemgeneratordir)\" \
-DSESSION_GENERATOR_PATH=\"$(sessiongeneratordir)\" \ -DUSER_GENERATOR_PATH=\"$(usergeneratordir)\" \
-I $(top_srcdir)/src -I $(top_srcdir)/src
if TARGET_GENTOO if TARGET_GENTOO
@ -268,13 +268,13 @@ nodist_systemunit_DATA = \
units/quotacheck.service \ units/quotacheck.service \
units/rescue.service units/rescue.service
dist_sessionunit_DATA = \ dist_userunit_DATA = \
units/session/default.target \ units/user/default.target \
units/session/exit.target units/user/exit.target
nodist_sessionunit_DATA = \ nodist_userunit_DATA = \
units/session/remote-fs.target \ units/user/remote-fs.target \
units/session/exit.service units/user/exit.service
EXTRA_DIST = \ EXTRA_DIST = \
units/getty@.service.m4 \ units/getty@.service.m4 \
@ -307,7 +307,7 @@ EXTRA_DIST = \
units/poweroff.service.in \ units/poweroff.service.in \
units/reboot.service.in \ units/reboot.service.in \
units/kexec.service.in \ units/kexec.service.in \
units/session/exit.service.in \ units/user/exit.service.in \
units/fsck@.service.in \ units/fsck@.service.in \
units/fsck-root.service.in \ units/fsck-root.service.in \
units/quotacheck.service.in \ units/quotacheck.service.in \
@ -1008,19 +1008,19 @@ M4_PROCESS_SYSTEM = \
$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \ $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
$(M4) -P $(M4_DISTRO_FLAG) -DFOR_SYSTEM=1 < $< > $@ || rm $@ $(M4) -P $(M4_DISTRO_FLAG) -DFOR_SYSTEM=1 < $< > $@ || rm $@
M4_PROCESS_SESSION = \ M4_PROCESS_USER = \
$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \ $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
$(M4) -P $(M4_DISTRO_FLAG) -DFOR_SESSION=1 < $< > $@ || rm $@ $(M4) -P $(M4_DISTRO_FLAG) -DFOR_USER=1 < $< > $@ || rm $@
units/%: units/%.m4 Makefile units/%: units/%.m4 Makefile
$(M4_PROCESS_SYSTEM) $(M4_PROCESS_SYSTEM)
units/session/%: units/%.m4 Makefile units/user/%: units/%.m4 Makefile
$(M4_PROCESS_SESSION) $(M4_PROCESS_USER)
CLEANFILES = \ CLEANFILES = \
$(nodist_systemunit_DATA) \ $(nodist_systemunit_DATA) \
$(nodist_sessionunit_DATA) \ $(nodist_userunit_DATA) \
$(nodist_man_MANS) \ $(nodist_man_MANS) \
${XML_IN_FILES:.xml.in=.html} \ ${XML_IN_FILES:.xml.in=.html} \
$(pkgconfigdata_DATA) $(pkgconfigdata_DATA)
@ -1105,7 +1105,7 @@ CLEANFILES += \
install-data-hook: install-data-hook:
$(MKDIR_P) -m 0755 \ $(MKDIR_P) -m 0755 \
$(DESTDIR)$(systemunitdir) \ $(DESTDIR)$(systemunitdir) \
$(DESTDIR)$(sessionunitdir) \ $(DESTDIR)$(userunitdir) \
$(DESTDIR)$(systemunitdir)/sysinit.target.wants \ $(DESTDIR)$(systemunitdir)/sysinit.target.wants \
$(DESTDIR)$(systemunitdir)/sockets.target.wants \ $(DESTDIR)$(systemunitdir)/sockets.target.wants \
$(DESTDIR)$(systemunitdir)/basic.target.wants \ $(DESTDIR)$(systemunitdir)/basic.target.wants \
@ -1123,11 +1123,11 @@ install-data-hook:
$(DESTDIR)$(pkgsysconfdir)/system/local-fs.target.wants \ $(DESTDIR)$(pkgsysconfdir)/system/local-fs.target.wants \
$(DESTDIR)$(pkgsysconfdir)/system/multi-user.target.wants \ $(DESTDIR)$(pkgsysconfdir)/system/multi-user.target.wants \
$(DESTDIR)$(pkgsysconfdir)/system/getty.target.wants \ $(DESTDIR)$(pkgsysconfdir)/system/getty.target.wants \
$(DESTDIR)$(pkgsysconfdir)/session \ $(DESTDIR)$(pkgsysconfdir)/user \
$(DESTDIR)$(sysconfdir)/xdg/systemd $(DESTDIR)$(sysconfdir)/xdg/systemd
( cd $(DESTDIR)$(sysconfdir)/xdg/systemd/ && \ ( cd $(DESTDIR)$(sysconfdir)/xdg/systemd/ && \
rm -f session && \ rm -f user && \
$(LN_S) $(pkgsysconfdir)/session session ) $(LN_S) $(pkgsysconfdir)/user user )
( cd $(DESTDIR)$(systemunitdir)/sockets.target.wants && \ ( cd $(DESTDIR)$(systemunitdir)/sockets.target.wants && \
rm -f systemd-initctl.socket systemd-logger.socket systemd-shutdownd.socket syslog.socket && \ rm -f systemd-initctl.socket systemd-logger.socket systemd-shutdownd.socket syslog.socket && \
$(LN_S) ../systemd-logger.socket systemd-logger.socket && \ $(LN_S) ../systemd-logger.socket systemd-logger.socket && \
@ -1167,7 +1167,7 @@ install-data-hook:
$(LN_S) ../remount-rootfs.service remount-rootfs.service && \ $(LN_S) ../remount-rootfs.service remount-rootfs.service && \
$(LN_S) ../var-run.mount var-run.mount && \ $(LN_S) ../var-run.mount var-run.mount && \
$(LN_S) ../var-lock.mount var-lock.mount ) $(LN_S) ../var-lock.mount var-lock.mount )
( cd $(DESTDIR)$(sessionunitdir) && \ ( cd $(DESTDIR)$(userunitdir) && \
rm -f shutdown.target sockets.target local-fs.target swap.target bluetooth.target printer.target && \ rm -f shutdown.target sockets.target local-fs.target swap.target bluetooth.target printer.target && \
$(LN_S) $(systemunitdir)/shutdown.target shutdown.target && \ $(LN_S) $(systemunitdir)/shutdown.target shutdown.target && \
$(LN_S) $(systemunitdir)/sockets.target sockets.target && \ $(LN_S) $(systemunitdir)/sockets.target sockets.target && \

4
TODO
View File

@ -42,8 +42,6 @@
* add systemctl switch to dump transaction without executing it * add systemctl switch to dump transaction without executing it
* system.conf/session.conf man page
* suspend, resume * suspend, resume
* systemctl auto-pager a la git * systemctl auto-pager a la git
@ -79,8 +77,6 @@
* declare /etc/os-release cross-distro standard * declare /etc/os-release cross-distro standard
* rename s/session/user/g
* fix hotplug transactions * fix hotplug transactions
External: External:

View File

@ -760,8 +760,8 @@
--variable=systemdsystemunitdir</command> (for --variable=systemdsystemunitdir</command> (for
system services), resp. <command>pkg-config system services), resp. <command>pkg-config
systemd systemd
--variable=systemdsessionunitdir</command> --variable=systemduserunitdir</command>
(for session services). This will make the (for user services). This will make the
services available in the system on explicit services available in the system on explicit
request but not activate them automatically request but not activate them automatically
during boot. Optionally, during package during boot. Optionally, during package
@ -795,7 +795,7 @@ AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_sy
machines, and optionally allows their machines, and optionally allows their
installation even on machines lacking installation even on machines lacking
systemd. (Modification of this snippet for the systemd. (Modification of this snippet for the
session unit directory is left as excercise to the user unit directory is left as excercise to the
reader.)</para> reader.)</para>
<para>Additionally, to ensure that <para>Additionally, to ensure that

View File

@ -45,7 +45,7 @@
<refnamediv> <refnamediv>
<refname>systemadm</refname> <refname>systemadm</refname>
<refpurpose>Graphical frontend for the systemd system <refpurpose>Graphical frontend for the systemd system
and session manager</refpurpose> and service manager</refpurpose>
</refnamediv> </refnamediv>
<refsynopsisdiv> <refsynopsisdiv>
@ -58,7 +58,7 @@
<title>Description</title> <title>Description</title>
<para><command>systemadm</command> is a graphical <para><command>systemadm</command> is a graphical
frontend for the systemd system and session manager frontend for the systemd system and service manager
and allows introspection and control of and allows introspection and control of
systemd.</para> systemd.</para>
</refsect1> </refsect1>
@ -87,10 +87,10 @@
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><option>--session</option></term> <term><option>--user</option></term>
<listitem><para>Connect to the systemd <listitem><para>Connect to the systemd
session manager of the calling manager of the calling
user.</para></listitem> user.</para></listitem>
</varlistentry> </varlistentry>

View File

@ -44,7 +44,7 @@
<refnamediv> <refnamediv>
<refname>systemctl</refname> <refname>systemctl</refname>
<refpurpose>Control the systemd system and session manager</refpurpose> <refpurpose>Control the systemd system and service manager</refpurpose>
</refnamediv> </refnamediv>
<refsynopsisdiv> <refsynopsisdiv>
@ -59,7 +59,7 @@
<para><command>systemctl</command> may be used to <para><command>systemctl</command> may be used to
introspect and control the state of the introspect and control the state of the
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry> <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
system and session manager.</para> system and service manager.</para>
</refsect1> </refsect1>
<refsect1> <refsect1>
@ -178,10 +178,10 @@
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><option>--session</option></term> <term><option>--user</option></term>
<listitem><para>Talk to the systemd <listitem><para>Talk to the systemd
session manager of the calling user.</para></listitem> manager of the calling user.</para></listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
@ -224,10 +224,10 @@
<listitem><para>When used with <listitem><para>When used with
<command>enable</command> and <command>enable</command> and
<command>disable</command>, operate on the <command>disable</command>, operate on the
global session configuŕation global user configuŕation
directory, thus enabling or disabling directory, thus enabling or disabling
a unit file globally for all future a unit file globally for all future
sessions of all users.</para></listitem> logins of all users.</para></listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
@ -598,11 +598,11 @@
<para>Depending on whether <para>Depending on whether
<option>--system</option>, <option>--system</option>,
<option>--session</option> or <option>--user</option> or
<option>--global</option> is specified <option>--global</option> is specified
this enables the unit for the system, this enables the unit for the system,
for sessions of the calling user only for the calling user only
or for all future session of all or for all future logins of all
users. Note that in the latter case no users. Note that in the latter case no
systemd daemon configuration is systemd daemon configuration is
reloaded.</para> reloaded.</para>
@ -643,7 +643,7 @@
<para>This command honours <para>This command honours
<option>--system</option>, <option>--system</option>,
<option>--session</option>, <option>--user</option>,
<option>--global</option> in a similar <option>--global</option> in a similar
way as way as
<command>enable</command>.</para> <command>enable</command>.</para>
@ -942,9 +942,9 @@
<listitem><para>Ask the systemd <listitem><para>Ask the systemd
manager to quit. This is only manager to quit. This is only
supported for session managers supported for user service managers
(i.e. in conjunction with the (i.e. in conjunction with the
<option>--session</option> option) and <option>--user</option> option) and
will fail otherwise.</para></listitem> will fail otherwise.</para></listitem>
</varlistentry> </varlistentry>
</variablelist> </variablelist>

View File

@ -49,7 +49,7 @@
<refsynopsisdiv> <refsynopsisdiv>
<para><filename>system.conf</filename></para> <para><filename>system.conf</filename></para>
<para><filename>session.conf</filename></para> <para><filename>user.conf</filename></para>
</refsynopsisdiv> </refsynopsisdiv>
<refsect1> <refsect1>
@ -57,7 +57,7 @@
<para>When run as system instance systemd reads the <para>When run as system instance systemd reads the
configuration file <filename>system.conf</filename>, configuration file <filename>system.conf</filename>,
otherwise <filename>session.conf</filename>. These otherwise <filename>user.conf</filename>. These
configuration files contain a few settings controlling configuration files contain a few settings controlling
basic manager operations.</para> basic manager operations.</para>
@ -79,6 +79,7 @@
<term><varname>DumpCore=yes</varname></term> <term><varname>DumpCore=yes</varname></term>
<term><varname>CrashShell=no</varname></term> <term><varname>CrashShell=no</varname></term>
<term><varname>ShowStatus=yes</varname></term> <term><varname>ShowStatus=yes</varname></term>
<term><varname>SysVConsole=yes</varname></term>
<term><varname>CrashChVT=1</varname></term> <term><varname>CrashChVT=1</varname></term>
<listitem><para>Configures various <listitem><para>Configures various
@ -99,6 +100,18 @@
process. Takes a space-separated list process. Takes a space-separated list
of CPU indexes.</para></listitem> of CPU indexes.</para></listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term><varname>MountAuto=yes</varname></term>
<term><varname>SwapAuto=yes</varname></term>
<listitem><para>Configures whether
systemd should automatically activate
all swap or mounts listed in
<filename>/etc/fstab</filename>, or
whether this job is left to some other
system script.</para></listitem>
</varlistentry>
</variablelist> </variablelist>
</refsect1> </refsect1>

View File

@ -698,9 +698,9 @@
</refsect1> </refsect1>
<refsect1> <refsect1>
<title>Special Session Units</title> <title>Special User Units</title>
<para>When systemd runs as a service instance, the <para>When systemd runs as a user instance, the
following special units are available, which have following special units are available, which have
similar definitions as their system counterparts: similar definitions as their system counterparts:
<filename>default.target</filename>, <filename>default.target</filename>,
@ -719,22 +719,22 @@
<listitem> <listitem>
<para>A special service unit <para>A special service unit
for shutting down the for shutting down the
session.</para> user service manager.</para>
<para>Applications wanting to <para>Applications wanting to
terminate the session should terminate the user service
start this unit. If systemd manager should start this
receives SIGTERM or SIGINT unit. If systemd receives
when running as session daemon SIGTERM or SIGINT when running
it will start this as user service daemon it will
unit.</para> start this unit.</para>
<para>Normally, this pulls in <para>Normally, this pulls in
<filename>shutdown.target</filename> <filename>shutdown.target</filename>
which in turn should be which in turn should be
conflicted by all units that conflicted by all units that
want to be shut down on want to be shut down on
session exit.</para> user service manager exit.</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
</variablelist> </variablelist>

View File

@ -45,7 +45,7 @@
<refnamediv> <refnamediv>
<refname>systemd</refname> <refname>systemd</refname>
<refname>init</refname> <refname>init</refname>
<refpurpose>systemd System and Session Manager</refpurpose> <refpurpose>systemd System and Service Manager</refpurpose>
</refnamediv> </refnamediv>
<refsynopsisdiv> <refsynopsisdiv>
@ -60,7 +60,7 @@
<refsect1> <refsect1>
<title>Description</title> <title>Description</title>
<para>systemd is a system and session manager for <para>systemd is a system and service manager for
Linux operating systems. When run as first process on Linux operating systems. When run as first process on
boot (as PID 1), it acts as init system that brings boot (as PID 1), it acts as init system that brings
up and maintains userspace services.</para> up and maintains userspace services.</para>
@ -77,7 +77,7 @@
<para>When run as system instance, systemd interprets <para>When run as system instance, systemd interprets
the configuration file the configuration file
<filename>system.conf</filename>, otherwise <filename>system.conf</filename>, otherwise
<filename>session.conf</filename>. See <filename>user.conf</filename>. See
<citerefentry><refentrytitle>systemd.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry> <citerefentry><refentrytitle>systemd.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for more information.</para> for more information.</para>
</refsect1> </refsect1>
@ -136,10 +136,10 @@
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><option>--system</option></term> <term><option>--system</option></term>
<term><option>--session</option></term> <term><option>--user</option></term>
<listitem><para>Tell systemd to run a <listitem><para>Tell systemd to run a
system instance (resp. session system instance (resp. user
instance), even if the process ID is instance), even if the process ID is
not 1 (resp. is 1), i.e. systemd is not 1 (resp. is 1), i.e. systemd is
not (resp. is) run as init process. not (resp. is) run as init process.
@ -159,27 +159,36 @@
<varlistentry> <varlistentry>
<term><option>--dump-core</option></term> <term><option>--dump-core</option></term>
<listitem><para>Dump core on crash. This switch has no effect when run as session instance.</para></listitem> <listitem><para>Dump core on
crash. This switch has no effect when
run as user
instance.</para></listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><option>--crash-shell</option></term> <term><option>--crash-shell</option></term>
<listitem><para>Run shell on crash. This switch has no effect when run as session instance.</para></listitem> <listitem><para>Run shell on
crash. This switch has no effect when
run as user
instance.</para></listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><option>--confirm-spawn</option></term> <term><option>--confirm-spawn</option></term>
<listitem><para>Ask for confirmation when spawning processes. This switch has no effect when run as session instance.</para></listitem> <listitem><para>Ask for confirmation
when spawning processes. This switch
has no effect when run as user
instance.</para></listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><option>--show-status=</option></term> <term><option>--show-status=</option></term>
<listitem><para>Show terse service <listitem><para>Show terse service
status information while booting. This status information while booting. This
switch has no effect when run as switch has no effect when run as user
session instance. Takes a boolean instance. Takes a boolean argument
argument which may be omitted which may be omitted which is
which is interpreted as interpreted as
<option>true</option>.</para></listitem> <option>true</option>.</para></listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
@ -188,7 +197,7 @@
<listitem><para>Controls whether <listitem><para>Controls whether
output of SysV init scripts will be output of SysV init scripts will be
directed to the console. This switch directed to the console. This switch
has no effect when run as session has no effect when run as user
instance. Takes a boolean argument instance. Takes a boolean argument
which may be omitted which is which may be omitted which is
interpreted as interpreted as
@ -489,10 +498,10 @@
<variablelist> <variablelist>
<varlistentry> <varlistentry>
<term>Session unit directories</term> <term>User unit directories</term>
<listitem><para>Similar rules apply <listitem><para>Similar rules apply
for the session unit for the user unit
directories. However, here the <ulink directories. However, here the <ulink
url="http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html">XDG url="http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html">XDG
Base Directory specification</ulink> Base Directory specification</ulink>
@ -500,11 +509,11 @@
units. Applications should place their units. Applications should place their
unit files in the directory returned unit files in the directory returned
by <command>pkg-config systemd by <command>pkg-config systemd
--variable=systemdsessionunitdir</command>. Global --variable=systemduserunitdir</command>. Global
configuration is done in the directory configuration is done in the directory
reported by <command>pkg-config reported by <command>pkg-config
systemd systemd
--variable=systemdsessionconfdir</command>. The --variable=systemduserconfdir</command>. The
<command>enable</command> and <command>enable</command> and
<command>disable</command> commands of <command>disable</command> commands of
the the
@ -565,12 +574,12 @@
to <command>systemctl to <command>systemctl
daemon-reexec</command>.</para> daemon-reexec</command>.</para>
<para>systemd session managers will <para>systemd user managers will
start the start the
<filename>exit.target</filename> unit <filename>exit.target</filename> unit
when this signal is received. This is when this signal is received. This is
mostly equivalent to mostly equivalent to
<command>systemctl --session start <command>systemctl --user start
exit.target</command>.</para></listitem> exit.target</command>.</para></listitem>
</varlistentry> </varlistentry>
@ -585,7 +594,7 @@
<command>systemctl start <command>systemctl start
ctl-alt-del.target</command>.</para> ctl-alt-del.target</command>.</para>
<para>systemd session managers <para>systemd user managers
treat this signal the same way as treat this signal the same way as
SIGTERM.</para></listitem> SIGTERM.</para></listitem>
</varlistentry> </varlistentry>
@ -602,7 +611,7 @@
kbrequest.target</command>.</para> kbrequest.target</command>.</para>
<para>This signal is ignored by <para>This signal is ignored by
systemd session systemd user
managers.</para></listitem> managers.</para></listitem>
</varlistentry> </varlistentry>
@ -757,7 +766,7 @@
<term><varname>$XDG_DATA_HOME</varname></term> <term><varname>$XDG_DATA_HOME</varname></term>
<term><varname>$XDG_DATA_DIRS</varname></term> <term><varname>$XDG_DATA_DIRS</varname></term>
<listitem><para>The systemd session <listitem><para>The systemd user
manager uses these variables in manager uses these variables in
accordance to the <ulink accordance to the <ulink
url="http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html">XDG url="http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html">XDG

View File

@ -854,7 +854,7 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection,
} else if (dbus_message_is_method_call(message, "org.freedesktop.systemd1.Manager", "Exit")) { } else if (dbus_message_is_method_call(message, "org.freedesktop.systemd1.Manager", "Exit")) {
if (m->running_as == MANAGER_SYSTEM) { if (m->running_as == MANAGER_SYSTEM) {
dbus_set_error(&error, BUS_ERROR_NOT_SUPPORTED, "Exit is only supported for session managers."); dbus_set_error(&error, BUS_ERROR_NOT_SUPPORTED, "Exit is only supported for user service managers.");
return bus_send_error_reply(m, connection, message, &error, -ENOTSUP); return bus_send_error_reply(m, connection, message, &error, -ENOTSUP);
} }

View File

@ -864,7 +864,7 @@ static int bus_init_api(Manager *m) {
if (m->running_as == MANAGER_SYSTEM && m->system_bus) if (m->running_as == MANAGER_SYSTEM && m->system_bus)
m->api_bus = m->system_bus; m->api_bus = m->system_bus;
else { else {
if (!(m->api_bus = dbus_bus_get_private(m->running_as == MANAGER_SESSION ? DBUS_BUS_SESSION : DBUS_BUS_SYSTEM, &error))) { if (!(m->api_bus = dbus_bus_get_private(m->running_as == MANAGER_USER ? DBUS_BUS_SESSION : DBUS_BUS_SYSTEM, &error))) {
log_debug("Failed to get API D-Bus connection, retrying later: %s", error.message); log_debug("Failed to get API D-Bus connection, retrying later: %s", error.message);
r = 0; r = 0;
goto fail; goto fail;

View File

@ -514,7 +514,7 @@ static int parse_config_file(void) {
const char *fn; const char *fn;
int r; int r;
fn = arg_running_as == MANAGER_SYSTEM ? SYSTEM_CONFIG_FILE : SESSION_CONFIG_FILE; fn = arg_running_as == MANAGER_SYSTEM ? SYSTEM_CONFIG_FILE : USER_CONFIG_FILE;
if (!(f = fopen(fn, "re"))) { if (!(f = fopen(fn, "re"))) {
if (errno == ENOENT) if (errno == ENOENT)
@ -573,7 +573,7 @@ static int parse_argv(int argc, char *argv[]) {
ARG_LOG_LOCATION, ARG_LOG_LOCATION,
ARG_UNIT, ARG_UNIT,
ARG_SYSTEM, ARG_SYSTEM,
ARG_SESSION, ARG_USER,
ARG_TEST, ARG_TEST,
ARG_DUMP_CONFIGURATION_ITEMS, ARG_DUMP_CONFIGURATION_ITEMS,
ARG_DUMP_CORE, ARG_DUMP_CORE,
@ -592,7 +592,7 @@ static int parse_argv(int argc, char *argv[]) {
{ "log-location", optional_argument, NULL, ARG_LOG_LOCATION }, { "log-location", optional_argument, NULL, ARG_LOG_LOCATION },
{ "unit", required_argument, NULL, ARG_UNIT }, { "unit", required_argument, NULL, ARG_UNIT },
{ "system", no_argument, NULL, ARG_SYSTEM }, { "system", no_argument, NULL, ARG_SYSTEM },
{ "session", no_argument, NULL, ARG_SESSION }, { "user", no_argument, NULL, ARG_USER },
{ "test", no_argument, NULL, ARG_TEST }, { "test", no_argument, NULL, ARG_TEST },
{ "help", no_argument, NULL, 'h' }, { "help", no_argument, NULL, 'h' },
{ "dump-configuration-items", no_argument, NULL, ARG_DUMP_CONFIGURATION_ITEMS }, { "dump-configuration-items", no_argument, NULL, ARG_DUMP_CONFIGURATION_ITEMS },
@ -671,8 +671,8 @@ static int parse_argv(int argc, char *argv[]) {
arg_running_as = MANAGER_SYSTEM; arg_running_as = MANAGER_SYSTEM;
break; break;
case ARG_SESSION: case ARG_USER:
arg_running_as = MANAGER_SESSION; arg_running_as = MANAGER_USER;
break; break;
case ARG_TEST: case ARG_TEST:
@ -794,14 +794,14 @@ static int parse_argv(int argc, char *argv[]) {
static int help(void) { static int help(void) {
printf("%s [OPTIONS...]\n\n" printf("%s [OPTIONS...]\n\n"
"Starts up and maintains the system or a session.\n\n" "Starts up and maintains the system or user services.\n\n"
" -h --help Show this help\n" " -h --help Show this help\n"
" --test Determine startup sequence, dump it and exit\n" " --test Determine startup sequence, dump it and exit\n"
" --dump-configuration-items Dump understood unit configuration items\n" " --dump-configuration-items Dump understood unit configuration items\n"
" --introspect[=INTERFACE] Extract D-Bus interface data\n" " --introspect[=INTERFACE] Extract D-Bus interface data\n"
" --unit=UNIT Set default unit\n" " --unit=UNIT Set default unit\n"
" --system Run a system instance, even if PID != 1\n" " --system Run a system instance, even if PID != 1\n"
" --session Run a session instance\n" " --user Run a user instance\n"
" --dump-core Dump core on crash\n" " --dump-core Dump core on crash\n"
" --crash-shell Run shell on crash\n" " --crash-shell Run shell on crash\n"
" --confirm-spawn Ask for confirmation when spawning processes\n" " --confirm-spawn Ask for confirmation when spawning processes\n"
@ -951,7 +951,7 @@ int main(int argc, char *argv[]) {
if (label_init() < 0) if (label_init() < 0)
goto finish; goto finish;
} else { } else {
arg_running_as = MANAGER_SESSION; arg_running_as = MANAGER_USER;
log_set_target(LOG_TARGET_CONSOLE); log_set_target(LOG_TARGET_CONSOLE);
} }
@ -1235,7 +1235,7 @@ finish:
if (arg_running_as == MANAGER_SYSTEM) if (arg_running_as == MANAGER_SYSTEM)
args[i++] = "--system"; args[i++] = "--system";
else else
args[i++] = "--session"; args[i++] = "--user";
if (arg_dump_core) if (arg_dump_core)
args[i++] = "--dump-core"; args[i++] = "--dump-core";

View File

@ -2015,7 +2015,7 @@ static int manager_start_target(Manager *m, const char *name, JobMode mode) {
dbus_error_init(&error); dbus_error_init(&error);
log_info("Activating special unit %s", name); log_debug("Activating special unit %s", name);
if ((r = manager_add_job_by_name(m, JOB_START, name, mode, true, &error, NULL)) < 0) if ((r = manager_add_job_by_name(m, JOB_START, name, mode, true, &error, NULL)) < 0)
log_error("Failed to enqueue %s job: %s", name, bus_error(&error, r)); log_error("Failed to enqueue %s job: %s", name, bus_error(&error, r));
@ -2839,7 +2839,7 @@ void manager_run_generators(Manager *m) {
assert(m); assert(m);
generator_path = m->running_as == MANAGER_SYSTEM ? SYSTEM_GENERATOR_PATH : SESSION_GENERATOR_PATH; generator_path = m->running_as == MANAGER_SYSTEM ? SYSTEM_GENERATOR_PATH : USER_GENERATOR_PATH;
if (!(d = opendir(generator_path))) { if (!(d = opendir(generator_path))) {
if (errno == ENOENT) if (errno == ENOENT)
@ -2852,9 +2852,9 @@ void manager_run_generators(Manager *m) {
if (!m->generator_unit_path) { if (!m->generator_unit_path) {
char *p; char *p;
char system_path[] = "/dev/.systemd/generator-XXXXXX", char system_path[] = "/dev/.systemd/generator-XXXXXX",
session_path[] = "/tmp/systemd-generator-XXXXXX"; user_path[] = "/tmp/systemd-generator-XXXXXX";
if (!(p = mkdtemp(m->running_as == MANAGER_SYSTEM ? system_path : session_path))) { if (!(p = mkdtemp(m->running_as == MANAGER_SYSTEM ? system_path : user_path))) {
log_error("Failed to generate generator directory: %m"); log_error("Failed to generate generator directory: %m");
goto finish; goto finish;
} }
@ -2990,7 +2990,7 @@ void manager_undo_generators(Manager *m) {
static const char* const manager_running_as_table[_MANAGER_RUNNING_AS_MAX] = { static const char* const manager_running_as_table[_MANAGER_RUNNING_AS_MAX] = {
[MANAGER_SYSTEM] = "system", [MANAGER_SYSTEM] = "system",
[MANAGER_SESSION] = "session" [MANAGER_USER] = "user"
}; };
DEFINE_STRING_TABLE_LOOKUP(manager_running_as, ManagerRunningAs); DEFINE_STRING_TABLE_LOOKUP(manager_running_as, ManagerRunningAs);

View File

@ -51,7 +51,7 @@ typedef enum ManagerExitCode {
typedef enum ManagerRunningAs { typedef enum ManagerRunningAs {
MANAGER_SYSTEM, MANAGER_SYSTEM,
MANAGER_SESSION, MANAGER_USER,
_MANAGER_RUNNING_AS_MAX, _MANAGER_RUNNING_AS_MAX,
_MANAGER_RUNNING_AS_INVALID = -1 _MANAGER_RUNNING_AS_INVALID = -1
} ManagerRunningAs; } ManagerRunningAs;

View File

@ -30,11 +30,11 @@
#include "path-lookup.h" #include "path-lookup.h"
int session_config_home(char **config_home) { int user_config_home(char **config_home) {
const char *e; const char *e;
if ((e = getenv("XDG_CONFIG_HOME"))) { if ((e = getenv("XDG_CONFIG_HOME"))) {
if (asprintf(config_home, "%s/systemd/session", e) < 0) if (asprintf(config_home, "%s/systemd/user", e) < 0)
return -ENOMEM; return -ENOMEM;
return 1; return 1;
@ -42,7 +42,7 @@ int session_config_home(char **config_home) {
const char *home; const char *home;
if ((home = getenv("HOME"))) { if ((home = getenv("HOME"))) {
if (asprintf(config_home, "%s/.config/systemd/session", home) < 0) if (asprintf(config_home, "%s/.config/systemd/user", home) < 0)
return -ENOMEM; return -ENOMEM;
return 1; return 1;
@ -52,7 +52,7 @@ int session_config_home(char **config_home) {
return 0; return 0;
} }
static char** session_dirs(void) { static char** user_dirs(void) {
const char *home, *e; const char *home, *e;
char *config_home = NULL, *data_home = NULL; char *config_home = NULL, *data_home = NULL;
char **config_dirs = NULL, **data_dirs = NULL; char **config_dirs = NULL, **data_dirs = NULL;
@ -67,7 +67,7 @@ static char** session_dirs(void) {
* as data, and allow overriding as configuration. * as data, and allow overriding as configuration.
*/ */
if (session_config_home(&config_home) < 0) if (user_config_home(&config_home) < 0)
goto fail; goto fail;
home = getenv("HOME"); home = getenv("HOME");
@ -81,11 +81,11 @@ static char** session_dirs(void) {
* /etc/systemd/ anyway. */ * /etc/systemd/ anyway. */
if ((e = getenv("XDG_DATA_HOME"))) { if ((e = getenv("XDG_DATA_HOME"))) {
if (asprintf(&data_home, "%s/systemd/session", e) < 0) if (asprintf(&data_home, "%s/systemd/user", e) < 0)
goto fail; goto fail;
} else if (home) { } else if (home) {
if (asprintf(&data_home, "%s/.local/share/systemd/session", home) < 0) if (asprintf(&data_home, "%s/.local/share/systemd/user", home) < 0)
goto fail; goto fail;
/* There is really no need for two unit dirs in $HOME, /* There is really no need for two unit dirs in $HOME,
@ -96,7 +96,7 @@ static char** session_dirs(void) {
* one. */ * one. */
mkdir_parents(data_home, 0777); mkdir_parents(data_home, 0777);
(void) symlink("../../../.config/systemd/session", data_home); (void) symlink("../../../.config/systemd/user", data_home);
} }
if ((e = getenv("XDG_DATA_DIRS"))) if ((e = getenv("XDG_DATA_DIRS")))
@ -115,12 +115,12 @@ static char** session_dirs(void) {
r = t; r = t;
} }
if (!(t = strv_merge_concat(r, config_dirs, "/systemd/session"))) if (!(t = strv_merge_concat(r, config_dirs, "/systemd/user")))
goto finish; goto finish;
strv_free(r); strv_free(r);
r = t; r = t;
if (!(t = strv_append(r, SESSION_CONFIG_UNIT_PATH))) if (!(t = strv_append(r, USER_CONFIG_UNIT_PATH)))
goto fail; goto fail;
strv_free(r); strv_free(r);
r = t; r = t;
@ -132,12 +132,12 @@ static char** session_dirs(void) {
r = t; r = t;
} }
if (!(t = strv_merge_concat(r, data_dirs, "/systemd/session"))) if (!(t = strv_merge_concat(r, data_dirs, "/systemd/user")))
goto fail; goto fail;
strv_free(r); strv_free(r);
r = t; r = t;
if (!(t = strv_append(r, SESSION_DATA_UNIT_PATH))) if (!(t = strv_append(r, USER_DATA_UNIT_PATH)))
goto fail; goto fail;
strv_free(r); strv_free(r);
r = t; r = t;
@ -176,8 +176,8 @@ int lookup_paths_init(LookupPaths *p, ManagerRunningAs running_as) {
/* Nothing is set, so let's figure something out. */ /* Nothing is set, so let's figure something out. */
strv_free(p->unit_path); strv_free(p->unit_path);
if (running_as == MANAGER_SESSION) { if (running_as == MANAGER_USER) {
if (!(p->unit_path = session_dirs())) if (!(p->unit_path = user_dirs()))
return -ENOMEM; return -ENOMEM;
} else } else
if (!(p->unit_path = strv_new( if (!(p->unit_path = strv_new(

View File

@ -32,7 +32,7 @@ typedef struct LookupPaths {
#include "manager.h" #include "manager.h"
int session_config_home(char **config_home); int user_config_home(char **config_home);
int lookup_paths_init(LookupPaths *p, ManagerRunningAs running_as); int lookup_paths_init(LookupPaths *p, ManagerRunningAs running_as);
void lookup_paths_free(LookupPaths *p); void lookup_paths_free(LookupPaths *p);

View File

@ -252,7 +252,7 @@ int sd_notifyf(int unset_environment, const char *format, ...) _sd_printf_attr_(
fine. You should NOT protect them with a call to this function. Also fine. You should NOT protect them with a call to this function. Also
note that this function checks whether the system, not the user note that this function checks whether the system, not the user
session is controlled by systemd. However the functions above work session is controlled by systemd. However the functions above work
for both session and system services. for both user and system services.
See sd_booted(3) for more information. See sd_booted(3) for more information.
*/ */

View File

@ -1014,7 +1014,7 @@ static int service_add_default_dependencies(Service *s) {
if ((r = unit_add_two_dependencies_by_name(UNIT(s), UNIT_AFTER, UNIT_REQUIRES, SPECIAL_BASIC_TARGET, NULL, true)) < 0) if ((r = unit_add_two_dependencies_by_name(UNIT(s), UNIT_AFTER, UNIT_REQUIRES, SPECIAL_BASIC_TARGET, NULL, true)) < 0)
return r; return r;
} else if (s->meta.manager->running_as == MANAGER_SESSION) { } else if (s->meta.manager->running_as == MANAGER_USER) {
if ((r = unit_add_two_dependencies_by_name(UNIT(s), UNIT_AFTER, UNIT_REQUIRES, SPECIAL_SOCKETS_TARGET, NULL, true)) < 0) if ((r = unit_add_two_dependencies_by_name(UNIT(s), UNIT_AFTER, UNIT_REQUIRES, SPECIAL_SOCKETS_TARGET, NULL, true)) < 0)
return r; return r;

View File

@ -22,7 +22,7 @@ using GLib;
using DBus; using DBus;
using Pango; using Pango;
static bool session = false; static bool user = false;
public class LeftLabel : Label { public class LeftLabel : Label {
public LeftLabel(string? text = null) { public LeftLabel(string? text = null) {
@ -103,7 +103,7 @@ public class MainWindow : Window {
private ComboBox unit_type_combo_box; private ComboBox unit_type_combo_box;
public MainWindow() throws DBus.Error { public MainWindow() throws DBus.Error {
title = session ? "systemd Session Manager" : "systemd System Manager"; title = user ? "systemd User Service Manager" : "systemd System Manager";
position = WindowPosition.CENTER; position = WindowPosition.CENTER;
set_default_size(1000, 700); set_default_size(1000, 700);
set_border_width(12); set_border_width(12);
@ -297,7 +297,7 @@ public class MainWindow : Window {
bbox.pack_start(cancel_button, false, true, 0); bbox.pack_start(cancel_button, false, true, 0);
bus = DBus.Bus.get(session ? DBus.BusType.SESSION : DBus.BusType.SYSTEM); bus = DBus.Bus.get(user ? DBus.BusType.SESSION : DBus.BusType.SYSTEM);
manager = bus.get_object( manager = bus.get_object(
"org.freedesktop.systemd1", "org.freedesktop.systemd1",
@ -967,8 +967,8 @@ public class MainWindow : Window {
} }
static const OptionEntry entries[] = { static const OptionEntry entries[] = {
{ "session", 0, 0, OptionArg.NONE, out session, "Connect to session bus", null }, { "user", 0, 0, OptionArg.NONE, out user, "Connect to user service manager", null },
{ "system", 0, OptionFlags.REVERSE, OptionArg.NONE, out session, "Connect to system bus", null }, { "system", 0, OptionFlags.REVERSE, OptionArg.NONE, out user, "Connect to system manager", null },
{ null } { null }
}; };

View File

@ -44,7 +44,7 @@ _systemctl () {
local -A OPTS=( local -A OPTS=(
[STANDALONE]='--all -a --defaults --fail --force -f --full --global [STANDALONE]='--all -a --defaults --fail --force -f --full --global
--help -h --no-ask-password --no-block --no-reload --no-wall --help -h --no-ask-password --no-block --no-reload --no-wall
--order --require --quiet -q --session --system --version' --order --require --quiet -q --system --user --version'
[ARG]='--kill-mode --kill-who --property -p --signal -s --type -t' [ARG]='--kill-mode --kill-who --property -p --signal -s --type -t'
) )

View File

@ -61,7 +61,7 @@ static const char *arg_type = NULL;
static char **arg_property = NULL; static char **arg_property = NULL;
static bool arg_all = false; static bool arg_all = false;
static bool arg_fail = false; static bool arg_fail = false;
static bool arg_session = false; static bool arg_user = false;
static bool arg_global = false; static bool arg_global = false;
static bool arg_immediate = false; static bool arg_immediate = false;
static bool arg_no_block = false; static bool arg_no_block = false;
@ -1234,7 +1234,7 @@ static int start_unit_one(
if (need_daemon_reload(bus, name)) if (need_daemon_reload(bus, name))
log_warning("Unit file of created job changed on disk, 'systemctl %s daemon-reload' recommended.", log_warning("Unit file of created job changed on disk, 'systemctl %s daemon-reload' recommended.",
arg_session ? "--session" : "--system"); arg_user ? "--user" : "--system");
if (!arg_no_block) { if (!arg_no_block) {
char *p; char *p;
@ -1937,7 +1937,7 @@ static void print_status_info(UnitStatusInfo *i) {
printf("\n%sWarning:%s Unit file changed on disk, 'systemctl %s daemon-reload' recommended.\n", printf("\n%sWarning:%s Unit file changed on disk, 'systemctl %s daemon-reload' recommended.\n",
ansi_highlight(true), ansi_highlight(true),
ansi_highlight(false), ansi_highlight(false),
arg_session ? "--session" : "--system"); arg_user ? "--user" : "--system");
} }
static int status_property(const char *name, DBusMessageIter *iter, UnitStatusInfo *i) { static int status_property(const char *name, DBusMessageIter *iter, UnitStatusInfo *i) {
@ -3919,13 +3919,13 @@ static int install_info_apply(const char *verb, LookupPaths *paths, InstallInfo
static char *get_config_path(void) { static char *get_config_path(void) {
if (arg_session && arg_global) if (arg_user && arg_global)
return strdup(SESSION_CONFIG_UNIT_PATH); return strdup(USER_CONFIG_UNIT_PATH);
if (arg_session) { if (arg_user) {
char *p; char *p;
if (session_config_home(&p) < 0) if (user_config_home(&p) < 0)
return NULL; return NULL;
return p; return p;
@ -3946,7 +3946,7 @@ static int enable_unit(DBusConnection *bus, char **args, unsigned n) {
dbus_error_init(&error); dbus_error_init(&error);
zero(paths); zero(paths);
if ((r = lookup_paths_init(&paths, arg_session ? MANAGER_SESSION : MANAGER_SYSTEM)) < 0) { if ((r = lookup_paths_init(&paths, arg_user ? MANAGER_USER : MANAGER_SYSTEM)) < 0) {
log_error("Failed to determine lookup paths: %s", strerror(-r)); log_error("Failed to determine lookup paths: %s", strerror(-r));
goto finish; goto finish;
} }
@ -4010,9 +4010,9 @@ static int enable_unit(DBusConnection *bus, char **args, unsigned n) {
/* Don't try to reload anything when updating a unit globally */ /* Don't try to reload anything when updating a unit globally */
!arg_global && !arg_global &&
/* Don't try to reload anything if we are called for system changes but the system wasn't booted with systemd */ /* Don't try to reload anything if we are called for system changes but the system wasn't booted with systemd */
(arg_session || sd_booted() > 0) && (arg_user || sd_booted() > 0) &&
/* Don't try to reload anything if we are running in a chroot environment */ /* Don't try to reload anything if we are running in a chroot environment */
(arg_session || running_in_chroot() <= 0) ) { (arg_user || running_in_chroot() <= 0) ) {
int q; int q;
if ((q = daemon_reload(bus, args, n)) < 0) if ((q = daemon_reload(bus, args, n)) < 0)
@ -4047,8 +4047,8 @@ static int systemctl_help(void) {
" pending\n" " pending\n"
" -q --quiet Suppress output\n" " -q --quiet Suppress output\n"
" --no-block Do not wait until operation finished\n" " --no-block Do not wait until operation finished\n"
" --system Connect to system bus\n" " --system Connect to system manager\n"
" --session Connect to session bus\n" " --user Connect to user service manager\n"
" --order When generating graph for dot, show only order\n" " --order When generating graph for dot, show only order\n"
" --require When generating graph for dot, show only requirement\n" " --require When generating graph for dot, show only requirement\n"
" --no-wall Don't send wall message before halt/power-off/reboot\n" " --no-wall Don't send wall message before halt/power-off/reboot\n"
@ -4105,7 +4105,7 @@ static int systemctl_help(void) {
" poweroff Shut down and power-off the system\n" " poweroff Shut down and power-off the system\n"
" reboot Shut down and reboot the system\n" " reboot Shut down and reboot the system\n"
" kexec Shut down and reboot the system with kexec\n" " kexec Shut down and reboot the system with kexec\n"
" exit Ask for session termination\n", " exit Ask for user instance termination\n",
program_invocation_short_name); program_invocation_short_name);
return 0; return 0;
@ -4182,7 +4182,7 @@ static int systemctl_parse_argv(int argc, char *argv[]) {
enum { enum {
ARG_FAIL = 0x100, ARG_FAIL = 0x100,
ARG_VERSION, ARG_VERSION,
ARG_SESSION, ARG_USER,
ARG_SYSTEM, ARG_SYSTEM,
ARG_GLOBAL, ARG_GLOBAL,
ARG_NO_BLOCK, ARG_NO_BLOCK,
@ -4205,7 +4205,7 @@ static int systemctl_parse_argv(int argc, char *argv[]) {
{ "all", no_argument, NULL, 'a' }, { "all", no_argument, NULL, 'a' },
{ "full", no_argument, NULL, ARG_FULL }, { "full", no_argument, NULL, ARG_FULL },
{ "fail", no_argument, NULL, ARG_FAIL }, { "fail", no_argument, NULL, ARG_FAIL },
{ "session", no_argument, NULL, ARG_SESSION }, { "user", no_argument, NULL, ARG_USER },
{ "system", no_argument, NULL, ARG_SYSTEM }, { "system", no_argument, NULL, ARG_SYSTEM },
{ "global", no_argument, NULL, ARG_GLOBAL }, { "global", no_argument, NULL, ARG_GLOBAL },
{ "no-block", no_argument, NULL, ARG_NO_BLOCK }, { "no-block", no_argument, NULL, ARG_NO_BLOCK },
@ -4273,12 +4273,12 @@ static int systemctl_parse_argv(int argc, char *argv[]) {
arg_fail = true; arg_fail = true;
break; break;
case ARG_SESSION: case ARG_USER:
arg_session = true; arg_user = true;
break; break;
case ARG_SYSTEM: case ARG_SYSTEM:
arg_session = false; arg_user = false;
break; break;
case ARG_NO_BLOCK: case ARG_NO_BLOCK:
@ -4315,7 +4315,7 @@ static int systemctl_parse_argv(int argc, char *argv[]) {
case ARG_GLOBAL: case ARG_GLOBAL:
arg_global = true; arg_global = true;
arg_session = true; arg_user = true;
break; break;
case ARG_DEFAULTS: case ARG_DEFAULTS:
@ -5236,7 +5236,7 @@ int main(int argc, char*argv[]) {
goto finish; goto finish;
} }
bus_connect(arg_session ? DBUS_BUS_SESSION : DBUS_BUS_SYSTEM, &bus, &private_bus, &error); bus_connect(arg_user ? DBUS_BUS_SESSION : DBUS_BUS_SYSTEM, &bus, &private_bus, &error);
switch (arg_action) { switch (arg_action) {

View File

@ -13,6 +13,6 @@ systemdsystemconfdir=@pkgsysconfdir@/system
systemdsessionconfdir=@pkgsysconfdir@/session systemdsessionconfdir=@pkgsysconfdir@/session
Name: systemd Name: systemd
Description: systemd System and Session Manager Description: systemd System and Service Manager
URL: @PACKAGE_URL@ URL: @PACKAGE_URL@
Version: @PACKAGE_VERSION@ Version: @PACKAGE_VERSION@

View File

@ -15,4 +15,4 @@ After=shutdown.target
[Service] [Service]
Type=oneshot Type=oneshot
ExecStart=@SYSTEMCTL@ --session --force exit ExecStart=@SYSTEMCTL@ --user --force exit