[systemd-commits] 6 commits - configure.ac Makefile.am man/daemon.xml man/systemadm.xml man/systemctl.xml man/systemd.conf.xml man/systemd.special.xml.in man/systemd.unit.xml man/systemd.xml src/condition.c src/condition.h src/dbus.c src/dbus-manager.c src/gnome-ask-password-agent.vala src/load-fragment.c src/main.c src/manager.c src/manager.h src/path.c src/path-lookup.c src/path-lookup.h src/sd-daemon.h src/service.c src/systemadm.vala src/systemctl-bash-completion.sh src/systemctl.c systemd.pc.in TODO units/session units/systemd-modules-load.service.in units/user

Lennart Poettering lennart at kemper.freedesktop.org
Mon Nov 15 13:13:33 PST 2010


 Makefile.am                           |   46 ++++++++++++++---------------
 TODO                                  |    6 ---
 configure.ac                          |    4 +-
 man/daemon.xml                        |    6 +--
 man/systemadm.xml                     |    8 ++---
 man/systemctl.xml                     |   24 +++++++--------
 man/systemd.conf.xml                  |   17 +++++++++-
 man/systemd.special.xml.in            |   20 ++++++------
 man/systemd.unit.xml                  |    8 ++++-
 man/systemd.xml                       |   53 +++++++++++++++++++---------------
 src/condition.c                       |    7 ++++
 src/condition.h                       |    1 
 src/dbus-manager.c                    |    2 -
 src/dbus.c                            |    2 -
 src/gnome-ask-password-agent.vala     |    9 ++---
 src/load-fragment.c                   |    4 +-
 src/main.c                            |   18 +++++------
 src/manager.c                         |   13 +++++---
 src/manager.h                         |    2 -
 src/path-lookup.c                     |   28 ++++++++---------
 src/path-lookup.h                     |    2 -
 src/path.c                            |   32 ++++++++++++--------
 src/sd-daemon.h                       |    2 -
 src/service.c                         |    2 -
 src/systemadm.vala                    |   10 +++---
 src/systemctl-bash-completion.sh      |    2 -
 src/systemctl.c                       |   40 ++++++++++++-------------
 systemd.pc.in                         |    2 -
 units/session/.gitignore              |    1 
 units/session/Makefile                |    1 
 units/session/default.target          |   11 -------
 units/session/exit.service.in         |   18 -----------
 units/session/exit.target             |   18 -----------
 units/systemd-modules-load.service.in |    1 
 units/user/.gitignore                 |    1 
 units/user/Makefile                   |    1 
 units/user/default.target             |   11 +++++++
 units/user/exit.service.in            |   18 +++++++++++
 units/user/exit.target                |   18 +++++++++++
 39 files changed, 255 insertions(+), 214 deletions(-)

New commits:
commit af2d49f70bcff20efaf2d69aecaf4b3e898ff1fa
Author: Lennart Poettering <lennart at poettering.net>
Date:   Mon Nov 15 22:12:41 2010 +0100

    drop support for MANAGER_SESSION, introduce MANAGER_USER instead

diff --git a/Makefile.am b/Makefile.am
index 3389f43..8cc2530 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -30,9 +30,9 @@ bashcompletiondir=$(sysconfdir)/bash_completion.d
 
 # Our own, non-special dirs
 pkgsysconfdir=$(sysconfdir)/systemd
-sessionunitdir=$(pkgdatadir)/session
+userunitdir=$(pkgdatadir)/user
 tmpfilesdir=$(sysconfdir)/tmpfiles.d
-sessiongeneratordir=$(pkglibexecdir)/session-generators
+usergeneratordir=$(pkglibexecdir)/user-generators
 
 # And these are the special ones for /
 rootdir=@rootdir@
@@ -49,9 +49,9 @@ AM_CPPFLAGS = \
 	-DSYSTEM_DATA_UNIT_PATH=\"$(systemunitdir)\" \
 	-DSYSTEM_SYSVINIT_PATH=\"$(SYSTEM_SYSVINIT_PATH)\" \
 	-DSYSTEM_SYSVRCND_PATH=\"$(SYSTEM_SYSVRCND_PATH)\" \
-	-DSESSION_CONFIG_FILE=\"$(pkgsysconfdir)/session.conf\" \
-	-DSESSION_CONFIG_UNIT_PATH=\"$(pkgsysconfdir)/session\" \
-	-DSESSION_DATA_UNIT_PATH=\"$(sessionunitdir)\" \
+	-DUSER_CONFIG_FILE=\"$(pkgsysconfdir)/user.conf\" \
+	-DUSER_CONFIG_UNIT_PATH=\"$(pkgsysconfdir)/user\" \
+	-DUSER_DATA_UNIT_PATH=\"$(userunitdir)\" \
 	-DSYSTEMD_CGROUP_AGENT_PATH=\"$(rootlibexecdir)/systemd-cgroups-agent\" \
 	-DSYSTEMD_BINARY_PATH=\"$(rootbindir)/systemd\" \
 	-DSYSTEMD_SHUTDOWN_BINARY_PATH=\"$(rootlibexecdir)/systemd-shutdown\" \
@@ -61,7 +61,7 @@ AM_CPPFLAGS = \
 	-DRANDOM_SEED=\"$(localstatedir)/lib/random-seed\" \
 	-DSYSTEMD_CRYPTSETUP_PATH=\"$(rootlibexecdir)/systemd-cryptsetup\" \
 	-DSYSTEM_GENERATOR_PATH=\"$(systemgeneratordir)\" \
-	-DSESSION_GENERATOR_PATH=\"$(sessiongeneratordir)\" \
+	-DUSER_GENERATOR_PATH=\"$(usergeneratordir)\" \
 	-I $(top_srcdir)/src
 
 if TARGET_GENTOO
@@ -268,13 +268,13 @@ nodist_systemunit_DATA = \
 	units/quotacheck.service \
 	units/rescue.service
 
-dist_sessionunit_DATA = \
-	units/session/default.target \
-	units/session/exit.target
+dist_userunit_DATA = \
+	units/user/default.target \
+	units/user/exit.target
 
-nodist_sessionunit_DATA = \
-	units/session/remote-fs.target \
-	units/session/exit.service
+nodist_userunit_DATA = \
+	units/user/remote-fs.target \
+	units/user/exit.service
 
 EXTRA_DIST = \
 	units/getty at .service.m4 \
@@ -307,7 +307,7 @@ EXTRA_DIST = \
 	units/poweroff.service.in \
 	units/reboot.service.in \
 	units/kexec.service.in \
-	units/session/exit.service.in \
+	units/user/exit.service.in \
 	units/fsck at .service.in \
 	units/fsck-root.service.in \
 	units/quotacheck.service.in \
@@ -1008,19 +1008,19 @@ M4_PROCESS_SYSTEM = \
 	$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
 	$(M4) -P $(M4_DISTRO_FLAG) -DFOR_SYSTEM=1 < $< > $@ || rm $@
 
-M4_PROCESS_SESSION = \
+M4_PROCESS_USER = \
 	$(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
 	$(M4_PROCESS_SYSTEM)
 
-units/session/%: units/%.m4 Makefile
-	$(M4_PROCESS_SESSION)
+units/user/%: units/%.m4 Makefile
+	$(M4_PROCESS_USER)
 
 CLEANFILES = \
 	$(nodist_systemunit_DATA) \
-	$(nodist_sessionunit_DATA) \
+	$(nodist_userunit_DATA) \
 	$(nodist_man_MANS) \
 	${XML_IN_FILES:.xml.in=.html} \
 	$(pkgconfigdata_DATA)
@@ -1105,7 +1105,7 @@ CLEANFILES += \
 install-data-hook:
 	$(MKDIR_P) -m 0755 \
 		$(DESTDIR)$(systemunitdir) \
-		$(DESTDIR)$(sessionunitdir) \
+		$(DESTDIR)$(userunitdir) \
 		$(DESTDIR)$(systemunitdir)/sysinit.target.wants \
 		$(DESTDIR)$(systemunitdir)/sockets.target.wants \
 		$(DESTDIR)$(systemunitdir)/basic.target.wants \
@@ -1123,11 +1123,11 @@ install-data-hook:
 		$(DESTDIR)$(pkgsysconfdir)/system/local-fs.target.wants \
 		$(DESTDIR)$(pkgsysconfdir)/system/multi-user.target.wants \
 		$(DESTDIR)$(pkgsysconfdir)/system/getty.target.wants \
-		$(DESTDIR)$(pkgsysconfdir)/session \
+		$(DESTDIR)$(pkgsysconfdir)/user \
 		$(DESTDIR)$(sysconfdir)/xdg/systemd
 	( cd $(DESTDIR)$(sysconfdir)/xdg/systemd/ && \
-		rm -f session && \
-		$(LN_S) $(pkgsysconfdir)/session session )
+		rm -f user && \
+		$(LN_S) $(pkgsysconfdir)/user user )
 	( cd $(DESTDIR)$(systemunitdir)/sockets.target.wants && \
 		rm -f systemd-initctl.socket systemd-logger.socket systemd-shutdownd.socket syslog.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) ../var-run.mount var-run.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 && \
 		$(LN_S) $(systemunitdir)/shutdown.target shutdown.target && \
 		$(LN_S) $(systemunitdir)/sockets.target sockets.target && \
diff --git a/TODO b/TODO
index 29b7011..945f8d9 100644
--- a/TODO
+++ b/TODO
@@ -42,8 +42,6 @@
 
 * add systemctl switch to dump transaction without executing it
 
-* system.conf/session.conf man page
-
 * suspend, resume
 
 * systemctl auto-pager a la git
@@ -79,8 +77,6 @@
 
 * declare /etc/os-release cross-distro standard
 
-* rename s/session/user/g
-
 * fix hotplug transactions
 
 External:
diff --git a/man/daemon.xml b/man/daemon.xml
index 42a7ffd..f592e7d 100644
--- a/man/daemon.xml
+++ b/man/daemon.xml
@@ -760,8 +760,8 @@
                         --variable=systemdsystemunitdir</command> (for
                         system services), resp. <command>pkg-config
                         systemd
-                        --variable=systemdsessionunitdir</command>
-                        (for session services). This will make the
+                        --variable=systemduserunitdir</command>
+                        (for user services). This will make the
                         services available in the system on explicit
                         request but not activate them automatically
                         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
                         installation even on machines lacking
                         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>
 
                         <para>Additionally, to ensure that
diff --git a/man/systemadm.xml b/man/systemadm.xml
index 1377b18..cefc300 100644
--- a/man/systemadm.xml
+++ b/man/systemadm.xml
@@ -45,7 +45,7 @@
         <refnamediv>
                 <refname>systemadm</refname>
                 <refpurpose>Graphical frontend for the systemd system
-                and session manager</refpurpose>
+                and service manager</refpurpose>
         </refnamediv>
 
         <refsynopsisdiv>
@@ -58,7 +58,7 @@
                 <title>Description</title>
 
                 <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
                 systemd.</para>
         </refsect1>
@@ -87,10 +87,10 @@
                         </varlistentry>
 
                         <varlistentry>
-                                <term><option>--session</option></term>
+                                <term><option>--user</option></term>
 
                                 <listitem><para>Connect to the systemd
-                                session manager of the calling
+                                manager of the calling
                                 user.</para></listitem>
                         </varlistentry>
 
diff --git a/man/systemctl.xml b/man/systemctl.xml
index 10e0f82..844d218 100644
--- a/man/systemctl.xml
+++ b/man/systemctl.xml
@@ -44,7 +44,7 @@
 
         <refnamediv>
                 <refname>systemctl</refname>
-                <refpurpose>Control the systemd system and session manager</refpurpose>
+                <refpurpose>Control the systemd system and service manager</refpurpose>
         </refnamediv>
 
         <refsynopsisdiv>
@@ -59,7 +59,7 @@
                 <para><command>systemctl</command> may be used to
                 introspect and control the state of the
                 <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
-                system and session manager.</para>
+                system and service manager.</para>
         </refsect1>
 
         <refsect1>
@@ -178,10 +178,10 @@
                         </varlistentry>
 
                         <varlistentry>
-                                <term><option>--session</option></term>
+                                <term><option>--user</option></term>
 
                                 <listitem><para>Talk to the systemd
-                                session manager of the calling user.</para></listitem>
+                                manager of the calling user.</para></listitem>
                         </varlistentry>
 
                         <varlistentry>
@@ -224,10 +224,10 @@
                                 <listitem><para>When used with
                                 <command>enable</command> and
                                 <command>disable</command>, operate on the
-                                global session configuŕation
+                                global user configuŕation
                                 directory, thus enabling or disabling
                                 a unit file globally for all future
-                                sessions of all users.</para></listitem>
+                                logins of all users.</para></listitem>
                         </varlistentry>
 
                         <varlistentry>
@@ -598,11 +598,11 @@
 
                                 <para>Depending on whether
                                 <option>--system</option>,
-                                <option>--session</option> or
+                                <option>--user</option> or
                                 <option>--global</option> is specified
                                 this enables the unit for the system,
-                                for sessions of the calling user only
-                                or for all future session of all
+                                for the calling user only
+                                or for all future logins of all
                                 users. Note that in the latter case no
                                 systemd daemon configuration is
                                 reloaded.</para>
@@ -643,7 +643,7 @@
 
                                 <para>This command honours
                                 <option>--system</option>,
-                                <option>--session</option>,
+                                <option>--user</option>,
                                 <option>--global</option> in a similar
                                 way as
                                 <command>enable</command>.</para>
@@ -942,9 +942,9 @@
 
                                 <listitem><para>Ask the systemd
                                 manager to quit. This is only
-                                supported for session managers
+                                supported for user service managers
                                 (i.e. in conjunction with the
-                                <option>--session</option> option) and
+                                <option>--user</option> option) and
                                 will fail otherwise.</para></listitem>
                         </varlistentry>
                 </variablelist>
diff --git a/man/systemd.conf.xml b/man/systemd.conf.xml
index 399cae0..6759f97 100644
--- a/man/systemd.conf.xml
+++ b/man/systemd.conf.xml
@@ -49,7 +49,7 @@
 
         <refsynopsisdiv>
                 <para><filename>system.conf</filename></para>
-                <para><filename>session.conf</filename></para>
+                <para><filename>user.conf</filename></para>
         </refsynopsisdiv>
 
         <refsect1>
@@ -57,7 +57,7 @@
 
                 <para>When run as system instance systemd reads the
                 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
                 basic manager operations.</para>
 
@@ -79,6 +79,7 @@
                                 <term><varname>DumpCore=yes</varname></term>
                                 <term><varname>CrashShell=no</varname></term>
                                 <term><varname>ShowStatus=yes</varname></term>
+                                <term><varname>SysVConsole=yes</varname></term>
                                 <term><varname>CrashChVT=1</varname></term>
 
                                 <listitem><para>Configures various
@@ -99,6 +100,18 @@
                                 process. Takes a space-separated list
                                 of CPU indexes.</para></listitem>
                         </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>
         </refsect1>
 
diff --git a/man/systemd.special.xml.in b/man/systemd.special.xml.in
index 2855f6a..afe882e 100644
--- a/man/systemd.special.xml.in
+++ b/man/systemd.special.xml.in
@@ -698,9 +698,9 @@
         </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
                 similar definitions as their system counterparts:
                 <filename>default.target</filename>,
@@ -719,22 +719,22 @@
                                 <listitem>
                                         <para>A special service unit
                                         for shutting down the
-                                        session.</para>
+                                        user service manager.</para>
 
                                         <para>Applications wanting to
-                                        terminate the session should
-                                        start this unit. If systemd
-                                        receives SIGTERM or SIGINT
-                                        when running as session daemon
-                                        it will start this
-                                        unit.</para>
+                                        terminate the user service
+                                        manager should start this
+                                        unit. If systemd receives
+                                        SIGTERM or SIGINT when running
+                                        as user service daemon it will
+                                        start this unit.</para>
 
                                         <para>Normally, this pulls in
                                         <filename>shutdown.target</filename>
                                         which in turn should be
                                         conflicted by all units that
                                         want to be shut down on
-                                        session exit.</para>
+                                        user service manager exit.</para>
                                 </listitem>
                         </varlistentry>
                 </variablelist>
diff --git a/man/systemd.xml b/man/systemd.xml
index f434bfc..c6c06e5 100644
--- a/man/systemd.xml
+++ b/man/systemd.xml
@@ -45,7 +45,7 @@
         <refnamediv>
                 <refname>systemd</refname>
                 <refname>init</refname>
-                <refpurpose>systemd System and Session Manager</refpurpose>
+                <refpurpose>systemd System and Service Manager</refpurpose>
         </refnamediv>
 
         <refsynopsisdiv>
@@ -60,7 +60,7 @@
         <refsect1>
                 <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
                 boot (as PID 1), it acts as init system that brings
                 up and maintains userspace services.</para>
@@ -77,7 +77,7 @@
                 <para>When run as system instance, systemd interprets
                 the configuration file
                 <filename>system.conf</filename>, otherwise
-                <filename>session.conf</filename>. See
+                <filename>user.conf</filename>. See
                 <citerefentry><refentrytitle>systemd.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
                 for more information.</para>
         </refsect1>
@@ -136,10 +136,10 @@
                         </varlistentry>
                         <varlistentry>
                                 <term><option>--system</option></term>
-                                <term><option>--session</option></term>
+                                <term><option>--user</option></term>
 
                                 <listitem><para>Tell systemd to run a
-                                system instance (resp. session
+                                system instance (resp. user
                                 instance), even if the process ID is
                                 not 1 (resp. is 1), i.e. systemd is
                                 not (resp. is) run as init process.
@@ -159,27 +159,36 @@
                         <varlistentry>
                                 <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>
                                 <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>
                                 <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>
                                 <term><option>--show-status=</option></term>
 
                                 <listitem><para>Show terse service
                                 status information while booting. This
-                                switch has no effect when run as
-                                session instance. Takes a boolean
-                                argument which may be omitted
-                                which is interpreted as
+                                switch has no effect when run as user
+                                instance. Takes a boolean argument
+                                which may be omitted which is
+                                interpreted as
                                 <option>true</option>.</para></listitem>
                         </varlistentry>
                         <varlistentry>
@@ -188,7 +197,7 @@
                                 <listitem><para>Controls whether
                                 output of SysV init scripts will be
                                 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
                                 which may be omitted which is
                                 interpreted as
@@ -489,10 +498,10 @@
 
                 <variablelist>
                         <varlistentry>
-                                <term>Session unit directories</term>
+                                <term>User unit directories</term>
 
                                 <listitem><para>Similar rules apply
-                                for the session unit
+                                for the user unit
                                 directories. However, here the <ulink
                                 url="http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html">XDG
                                 Base Directory specification</ulink>
@@ -500,11 +509,11 @@
                                 units. Applications should place their
                                 unit files in the directory returned
                                 by <command>pkg-config systemd
-                                --variable=systemdsessionunitdir</command>. Global
+                                --variable=systemduserunitdir</command>. Global
                                 configuration is done in the directory
                                 reported by <command>pkg-config
                                 systemd
-                                --variable=systemdsessionconfdir</command>. The
+                                --variable=systemduserconfdir</command>. The
                                 <command>enable</command> and
                                 <command>disable</command> commands of
                                 the
@@ -565,12 +574,12 @@
                                 to <command>systemctl
                                 daemon-reexec</command>.</para>
 
-                                <para>systemd session managers will
+                                <para>systemd user managers will
                                 start the
                                 <filename>exit.target</filename> unit
                                 when this signal is received. This is
                                 mostly equivalent to
-                                <command>systemctl --session start
+                                <command>systemctl --user start
                                 exit.target</command>.</para></listitem>
                         </varlistentry>
 
@@ -585,7 +594,7 @@
                                 <command>systemctl start
                                 ctl-alt-del.target</command>.</para>
 
-                                <para>systemd session managers
+                                <para>systemd user managers
                                 treat this signal the same way as
                                 SIGTERM.</para></listitem>
                         </varlistentry>
@@ -602,7 +611,7 @@
                                 kbrequest.target</command>.</para>
 
                                 <para>This signal is ignored by
-                                systemd session
+                                systemd user
                                 managers.</para></listitem>
                         </varlistentry>
 
@@ -757,7 +766,7 @@
                                 <term><varname>$XDG_DATA_HOME</varname></term>
                                 <term><varname>$XDG_DATA_DIRS</varname></term>
 
-                                <listitem><para>The systemd session
+                                <listitem><para>The systemd user
                                 manager uses these variables in
                                 accordance to the <ulink
                                 url="http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html">XDG
diff --git a/src/dbus-manager.c b/src/dbus-manager.c
index 769035f..d1d3b47 100644
--- a/src/dbus-manager.c
+++ b/src/dbus-manager.c
@@ -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")) {
 
                 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);
                 }
 
diff --git a/src/dbus.c b/src/dbus.c
index 4365bca..66076f0 100644
--- a/src/dbus.c
+++ b/src/dbus.c
@@ -864,7 +864,7 @@ static int bus_init_api(Manager *m) {
         if (m->running_as == MANAGER_SYSTEM && m->system_bus)
                 m->api_bus = m->system_bus;
         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);
                         r = 0;
                         goto fail;
diff --git a/src/main.c b/src/main.c
index 71e684b..4bdc676 100644
--- a/src/main.c
+++ b/src/main.c
@@ -514,7 +514,7 @@ static int parse_config_file(void) {
         const char *fn;
         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 (errno == ENOENT)
@@ -573,7 +573,7 @@ static int parse_argv(int argc, char *argv[]) {
                 ARG_LOG_LOCATION,
                 ARG_UNIT,
                 ARG_SYSTEM,
-                ARG_SESSION,
+                ARG_USER,
                 ARG_TEST,
                 ARG_DUMP_CONFIGURATION_ITEMS,
                 ARG_DUMP_CORE,
@@ -592,7 +592,7 @@ static int parse_argv(int argc, char *argv[]) {
                 { "log-location",             optional_argument, NULL, ARG_LOG_LOCATION             },
                 { "unit",                     required_argument, NULL, ARG_UNIT                     },
                 { "system",                   no_argument,       NULL, ARG_SYSTEM                   },
-                { "session",                  no_argument,       NULL, ARG_SESSION                  },
+                { "user",                     no_argument,       NULL, ARG_USER                     },
                 { "test",                     no_argument,       NULL, ARG_TEST                     },
                 { "help",                     no_argument,       NULL, 'h'                          },
                 { "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;
                         break;
 
-                case ARG_SESSION:
-                        arg_running_as = MANAGER_SESSION;
+                case ARG_USER:
+                        arg_running_as = MANAGER_USER;
                         break;
 
                 case ARG_TEST:
@@ -794,14 +794,14 @@ static int parse_argv(int argc, char *argv[]) {
 static int help(void) {
 
         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"
                "     --test                      Determine startup sequence, dump it and exit\n"
                "     --dump-configuration-items  Dump understood unit configuration items\n"
                "     --introspect[=INTERFACE]    Extract D-Bus interface data\n"
                "     --unit=UNIT                 Set default unit\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"
                "     --crash-shell               Run shell on crash\n"
                "     --confirm-spawn             Ask for confirmation when spawning processes\n"
@@ -951,7 +951,7 @@ int main(int argc, char *argv[]) {
                 if (label_init() < 0)
                         goto finish;
         } else {
-                arg_running_as = MANAGER_SESSION;
+                arg_running_as = MANAGER_USER;
                 log_set_target(LOG_TARGET_CONSOLE);
         }
 
@@ -1235,7 +1235,7 @@ finish:
                 if (arg_running_as == MANAGER_SYSTEM)
                         args[i++] = "--system";
                 else
-                        args[i++] = "--session";
+                        args[i++] = "--user";
 
                 if (arg_dump_core)
                         args[i++] = "--dump-core";
diff --git a/src/manager.c b/src/manager.c
index 204a88e..25d85ea 100644
--- a/src/manager.c
+++ b/src/manager.c
@@ -2015,7 +2015,7 @@ static int manager_start_target(Manager *m, const char *name, JobMode mode) {
 
         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)
                 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);
 
-        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 (errno == ENOENT)
@@ -2852,9 +2852,9 @@ void manager_run_generators(Manager *m) {
         if (!m->generator_unit_path) {
                 char *p;
                 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");
                         goto finish;
                 }
@@ -2990,7 +2990,7 @@ void manager_undo_generators(Manager *m) {
 
 static const char* const manager_running_as_table[_MANAGER_RUNNING_AS_MAX] = {
         [MANAGER_SYSTEM] = "system",
-        [MANAGER_SESSION] = "session"
+        [MANAGER_USER] = "user"
 };
 
 DEFINE_STRING_TABLE_LOOKUP(manager_running_as, ManagerRunningAs);
diff --git a/src/manager.h b/src/manager.h
index e61194a..c7ace2d 100644
--- a/src/manager.h
+++ b/src/manager.h
@@ -51,7 +51,7 @@ typedef enum ManagerExitCode {
 
 typedef enum ManagerRunningAs {
         MANAGER_SYSTEM,
-        MANAGER_SESSION,
+        MANAGER_USER,
         _MANAGER_RUNNING_AS_MAX,
         _MANAGER_RUNNING_AS_INVALID = -1
 } ManagerRunningAs;
diff --git a/src/path-lookup.c b/src/path-lookup.c
index c746e5e..f094969 100644
--- a/src/path-lookup.c
+++ b/src/path-lookup.c
@@ -30,11 +30,11 @@
 
 #include "path-lookup.h"
 
-int session_config_home(char **config_home) {
+int user_config_home(char **config_home) {
         const char *e;
 
         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 1;
@@ -42,7 +42,7 @@ int session_config_home(char **config_home) {
                 const char *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 1;
@@ -52,7 +52,7 @@ int session_config_home(char **config_home) {
         return 0;
 }
 
-static char** session_dirs(void) {
+static char** user_dirs(void) {
         const char *home, *e;
         char *config_home = NULL, *data_home = NULL;
         char **config_dirs = NULL, **data_dirs = NULL;
@@ -67,7 +67,7 @@ static char** session_dirs(void) {
          * as data, and allow overriding as configuration.
          */
 
-        if (session_config_home(&config_home) < 0)
+        if (user_config_home(&config_home) < 0)
                 goto fail;
 
         home = getenv("HOME");
@@ -81,11 +81,11 @@ static char** session_dirs(void) {
          * /etc/systemd/ anyway. */
 
         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;
 
         } 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;
 
                 /* There is really no need for two unit dirs in $HOME,
@@ -96,7 +96,7 @@ static char** session_dirs(void) {
                  * one. */
 
                 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")))
@@ -115,12 +115,12 @@ static char** session_dirs(void) {
                 r = t;
         }
 
-        if (!(t = strv_merge_concat(r, config_dirs, "/systemd/session")))
+        if (!(t = strv_merge_concat(r, config_dirs, "/systemd/user")))
                 goto finish;
         strv_free(r);
         r = t;
 
-        if (!(t = strv_append(r, SESSION_CONFIG_UNIT_PATH)))
+        if (!(t = strv_append(r, USER_CONFIG_UNIT_PATH)))
                 goto fail;
         strv_free(r);
         r = t;
@@ -132,12 +132,12 @@ static char** session_dirs(void) {
                 r = t;
         }
 
-        if (!(t = strv_merge_concat(r, data_dirs, "/systemd/session")))
+        if (!(t = strv_merge_concat(r, data_dirs, "/systemd/user")))
                 goto fail;
         strv_free(r);
         r = t;
 
-        if (!(t = strv_append(r, SESSION_DATA_UNIT_PATH)))
+        if (!(t = strv_append(r, USER_DATA_UNIT_PATH)))
                 goto fail;
         strv_free(r);
         r = t;
@@ -176,8 +176,8 @@ int lookup_paths_init(LookupPaths *p, ManagerRunningAs running_as) {
                 /* Nothing is set, so let's figure something out. */
                 strv_free(p->unit_path);
 
-                if (running_as == MANAGER_SESSION) {
-                        if (!(p->unit_path = session_dirs()))
+                if (running_as == MANAGER_USER) {
+                        if (!(p->unit_path = user_dirs()))
                                 return -ENOMEM;
                 } else
                         if (!(p->unit_path = strv_new(
diff --git a/src/path-lookup.h b/src/path-lookup.h
index dca8b55..e06f979 100644
--- a/src/path-lookup.h
+++ b/src/path-lookup.h
@@ -32,7 +32,7 @@ typedef struct LookupPaths {
 
 #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);
 void lookup_paths_free(LookupPaths *p);
diff --git a/src/sd-daemon.h b/src/sd-daemon.h
index fdf3cc0..d0a0a94 100644
--- a/src/sd-daemon.h
+++ b/src/sd-daemon.h
@@ -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
   note that this function checks whether the system, not the user
   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.
 */
diff --git a/src/service.c b/src/service.c
index 0b54e5b..184ddf9 100644
--- a/src/service.c
+++ b/src/service.c
@@ -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)
                         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)
                         return r;
diff --git a/src/systemadm.vala b/src/systemadm.vala
index 2f3aed2..3a01efd 100644
--- a/src/systemadm.vala
+++ b/src/systemadm.vala
@@ -22,7 +22,7 @@ using GLib;
 using DBus;
 using Pango;
 
-static bool session = false;
+static bool user = false;
 
 public class LeftLabel : Label {
         public LeftLabel(string? text = null) {
@@ -103,7 +103,7 @@ public class MainWindow : Window {
         private ComboBox unit_type_combo_box;
 
         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;
                 set_default_size(1000, 700);
                 set_border_width(12);
@@ -297,7 +297,7 @@ public class MainWindow : Window {
 
                 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(
                                 "org.freedesktop.systemd1",
@@ -967,8 +967,8 @@ public class MainWindow : Window {
 }
 
 static const OptionEntry entries[] = {
-        { "session", 0,   0,                   OptionArg.NONE,   out session, "Connect to session bus", null },
-        { "system",  0,   OptionFlags.REVERSE, OptionArg.NONE,   out session, "Connect to system bus", null },
+        { "user",    0,   0,                   OptionArg.NONE, out user, "Connect to user service manager", null },
+        { "system",  0,   OptionFlags.REVERSE, OptionArg.NONE, out user, "Connect to system manager",       null },
         { null }
 };
 
diff --git a/src/systemctl-bash-completion.sh b/src/systemctl-bash-completion.sh
index 53f8e52..3e3380c 100644
--- a/src/systemctl-bash-completion.sh
+++ b/src/systemctl-bash-completion.sh
@@ -44,7 +44,7 @@ _systemctl () {
         local -A OPTS=(
                [STANDALONE]='--all -a --defaults --fail --force -f --full --global
                              --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'
         )
 
diff --git a/src/systemctl.c b/src/systemctl.c
index 372b3d0..9d6e012 100644
--- a/src/systemctl.c
+++ b/src/systemctl.c
@@ -61,7 +61,7 @@ static const char *arg_type = NULL;
 static char **arg_property = NULL;
 static bool arg_all = false;
 static bool arg_fail = false;
-static bool arg_session = false;
+static bool arg_user = false;
 static bool arg_global = false;
 static bool arg_immediate = false;
 static bool arg_no_block = false;
@@ -1234,7 +1234,7 @@ static int start_unit_one(
 
         if (need_daemon_reload(bus, name))
                 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) {
                 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",
                        ansi_highlight(true),
                        ansi_highlight(false),
-                       arg_session ? "--session" : "--system");
+                       arg_user ? "--user" : "--system");
 }
 
 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) {
 
-        if (arg_session && arg_global)
-                return strdup(SESSION_CONFIG_UNIT_PATH);
+        if (arg_user && arg_global)
+                return strdup(USER_CONFIG_UNIT_PATH);
 
-        if (arg_session) {
+        if (arg_user) {
                 char *p;
 
-                if (session_config_home(&p) < 0)
+                if (user_config_home(&p) < 0)
                         return NULL;
 
                 return p;
@@ -3946,7 +3946,7 @@ static int enable_unit(DBusConnection *bus, char **args, unsigned n) {
         dbus_error_init(&error);
 
         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));
                 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 */
                     !arg_global &&
                     /* 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 */
-                    (arg_session || running_in_chroot() <= 0) ) {
+                    (arg_user || running_in_chroot() <= 0) ) {
                         int q;
 
                         if ((q = daemon_reload(bus, args, n)) < 0)
@@ -4047,8 +4047,8 @@ static int systemctl_help(void) {
                "                      pending\n"
                "  -q --quiet          Suppress output\n"
                "     --no-block       Do not wait until operation finished\n"
-               "     --system         Connect to system bus\n"
-               "     --session        Connect to session bus\n"
+               "     --system         Connect to system manager\n"
+               "     --user           Connect to user service manager\n"
                "     --order          When generating graph for dot, show only order\n"
                "     --require        When generating graph for dot, show only requirement\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"
                "  reboot                          Shut down and reboot the system\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);
 
         return 0;
@@ -4182,7 +4182,7 @@ static int systemctl_parse_argv(int argc, char *argv[]) {
         enum {
                 ARG_FAIL = 0x100,
                 ARG_VERSION,
-                ARG_SESSION,
+                ARG_USER,
                 ARG_SYSTEM,
                 ARG_GLOBAL,
                 ARG_NO_BLOCK,
@@ -4205,7 +4205,7 @@ static int systemctl_parse_argv(int argc, char *argv[]) {
                 { "all",       no_argument,       NULL, 'a'           },
                 { "full",      no_argument,       NULL, ARG_FULL      },
                 { "fail",      no_argument,       NULL, ARG_FAIL      },
-                { "session",   no_argument,       NULL, ARG_SESSION   },
+                { "user",      no_argument,       NULL, ARG_USER      },
                 { "system",    no_argument,       NULL, ARG_SYSTEM    },
                 { "global",    no_argument,       NULL, ARG_GLOBAL    },
                 { "no-block",  no_argument,       NULL, ARG_NO_BLOCK  },
@@ -4273,12 +4273,12 @@ static int systemctl_parse_argv(int argc, char *argv[]) {
                         arg_fail = true;
                         break;
 
-                case ARG_SESSION:
-                        arg_session = true;
+                case ARG_USER:
+                        arg_user = true;
                         break;
 
                 case ARG_SYSTEM:
-                        arg_session = false;
+                        arg_user = false;
                         break;
 
                 case ARG_NO_BLOCK:
@@ -4315,7 +4315,7 @@ static int systemctl_parse_argv(int argc, char *argv[]) {
 
                 case ARG_GLOBAL:
                         arg_global = true;
-                        arg_session = true;
+                        arg_user = true;
                         break;
 
                 case ARG_DEFAULTS:
@@ -5236,7 +5236,7 @@ int main(int argc, char*argv[]) {
                 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) {
 
diff --git a/systemd.pc.in b/systemd.pc.in
index 71a5678..b5230f6 100644
--- a/systemd.pc.in
+++ b/systemd.pc.in
@@ -13,6 +13,6 @@ systemdsystemconfdir=@pkgsysconfdir@/system
 systemdsessionconfdir=@pkgsysconfdir@/session
 
 Name: systemd
-Description: systemd System and Session Manager
+Description: systemd System and Service Manager
 URL: @PACKAGE_URL@
 Version: @PACKAGE_VERSION@
diff --git a/units/session/.gitignore b/units/session/.gitignore
deleted file mode 100644
index eeb62b3..0000000
--- a/units/session/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-exit.service
diff --git a/units/session/Makefile b/units/session/Makefile
deleted file mode 120000
index 50be211..0000000
--- a/units/session/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-../../src/Makefile
\ No newline at end of file
diff --git a/units/session/default.target b/units/session/default.target
deleted file mode 100644
index deb310c..0000000
--- a/units/session/default.target
+++ /dev/null
@@ -1,11 +0,0 @@
-#  This file is part of systemd.
-#
-#  systemd is free software; you can redistribute it and/or modify it
-#  under the terms of the GNU General Public License as published by
-#  the Free Software Foundation; either version 2 of the License, or
-#  (at your option) any later version.
-
-# See systemd.special(7) for details
-
-[Unit]
-Description=Default
diff --git a/units/session/exit.service.in b/units/session/exit.service.in
deleted file mode 100644
index 024fbe1..0000000
--- a/units/session/exit.service.in
+++ /dev/null
@@ -1,18 +0,0 @@
-#  This file is part of systemd.
-#
-#  systemd is free software; you can redistribute it and/or modify it
-#  under the terms of the GNU General Public License as published by
-#  the Free Software Foundation; either version 2 of the License, or
-#  (at your option) any later version.
-
-# See systemd.special(7) for details
-
-[Unit]
-Description=Exit the Session
-DefaultDependencies=no
-Requires=shutdown.target
-After=shutdown.target
-
-[Service]
-Type=oneshot
-ExecStart=@SYSTEMCTL@ --session --force exit
diff --git a/units/session/exit.target b/units/session/exit.target
deleted file mode 100644
index f34844c..0000000
--- a/units/session/exit.target
+++ /dev/null
@@ -1,18 +0,0 @@
-#  This file is part of systemd.
-#
-#  systemd is free software; you can redistribute it and/or modify it
-#  under the terms of the GNU General Public License as published by
-#  the Free Software Foundation; either version 2 of the License, or
-#  (at your option) any later version.
-
-# See systemd.special(7) for details
-
-[Unit]
-Description=Exit the Session
-DefaultDependencies=no
-Requires=exit.service
-After=exit.service
-AllowIsolate=yes
-
-[Install]
-Alias=ctrl-alt-del.target
diff --git a/units/user/.gitignore b/units/user/.gitignore
new file mode 100644
index 0000000..eeb62b3
--- /dev/null
+++ b/units/user/.gitignore
@@ -0,0 +1 @@
+exit.service
diff --git a/units/user/Makefile b/units/user/Makefile
new file mode 120000
index 0000000..50be211
--- /dev/null
+++ b/units/user/Makefile
@@ -0,0 +1 @@
+../../src/Makefile
\ No newline at end of file
diff --git a/units/user/default.target b/units/user/default.target
new file mode 100644
index 0000000..deb310c
--- /dev/null
+++ b/units/user/default.target
@@ -0,0 +1,11 @@
+#  This file is part of systemd.
+#
+#  systemd is free software; you can redistribute it and/or modify it
+#  under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+
+# See systemd.special(7) for details
+
+[Unit]
+Description=Default
diff --git a/units/user/exit.service.in b/units/user/exit.service.in
new file mode 100644
index 0000000..a20b089
--- /dev/null
+++ b/units/user/exit.service.in
@@ -0,0 +1,18 @@
+#  This file is part of systemd.
+#
+#  systemd is free software; you can redistribute it and/or modify it
+#  under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+
+# See systemd.special(7) for details
+
+[Unit]
+Description=Exit the Session
+DefaultDependencies=no
+Requires=shutdown.target
+After=shutdown.target
+
+[Service]
+Type=oneshot
+ExecStart=@SYSTEMCTL@ --user --force exit
diff --git a/units/user/exit.target b/units/user/exit.target
new file mode 100644
index 0000000..f34844c
--- /dev/null
+++ b/units/user/exit.target
@@ -0,0 +1,18 @@
+#  This file is part of systemd.
+#
+#  systemd is free software; you can redistribute it and/or modify it
+#  under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+
+# See systemd.special(7) for details
+
+[Unit]
+Description=Exit the Session
+DefaultDependencies=no
+Requires=exit.service
+After=exit.service
+AllowIsolate=yes
+
+[Install]
+Alias=ctrl-alt-del.target

commit 62347bc24a695bc0527f663af5fe136b1a993573
Author: Lennart Poettering <lennart at poettering.net>
Date:   Mon Nov 15 21:30:52 2010 +0100

    path: properly free PathSpec structs

diff --git a/src/path.c b/src/path.c
index a8b1072..cc8b79a 100644
--- a/src/path.c
+++ b/src/path.c
@@ -39,6 +39,17 @@ static const UnitActiveState state_translation_table[_PATH_STATE_MAX] = {
         [PATH_FAILED] = UNIT_FAILED
 };
 
+static void path_unwatch_one(Path *p, PathSpec *s) {
+
+        if (s->inotify_fd < 0)
+                return;
+
+        unit_unwatch_fd(UNIT(p), &s->watch);
+
+        close_nointr_nofail(s->inotify_fd);
+        s->inotify_fd = -1;
+}
+
 static void path_done(Unit *u) {
         Path *p = PATH(u);
         PathSpec *s;
@@ -46,7 +57,9 @@ static void path_done(Unit *u) {
         assert(p);
 
         while ((s = p->specs)) {
+                path_unwatch_one(p, s);
                 LIST_REMOVE(PathSpec, spec, p->specs, s);
+                free(s->path);
                 free(s);
         }
 }
@@ -168,17 +181,6 @@ static void path_dump(Unit *u, FILE *f, const char *prefix) {
                         s->path);
 }
 
-static void path_unwatch_one(Path *p, PathSpec *s) {
-
-        if (s->inotify_fd < 0)
-                return;
-
-        unit_unwatch_fd(UNIT(p), &s->watch);
-
-        close_nointr_nofail(s->inotify_fd);
-        s->inotify_fd = -1;
-}
-
 static int path_watch_one(Path *p, PathSpec *s) {
         static const int flags_table[_PATH_TYPE_MAX] = {
                 [PATH_EXISTS] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB,

commit 40dde66fa021bf143bcd8f5e2bf5fadcc0339eae
Author: Lennart Poettering <lennart at poettering.net>
Date:   Mon Nov 15 21:09:18 2010 +0100

    manager: ignore invalid epoll events

diff --git a/TODO b/TODO
index 5730686..29b7011 100644
--- a/TODO
+++ b/TODO
@@ -79,7 +79,7 @@
 
 * declare /etc/os-release cross-distro standard
 
-Pre v12:
+* rename s/session/user/g
 
 * fix hotplug transactions
 
diff --git a/src/manager.c b/src/manager.c
index a39427b..204a88e 100644
--- a/src/manager.c
+++ b/src/manager.c
@@ -2192,6 +2192,9 @@ static int process_event(Manager *m, struct epoll_event *ev) {
 
         assert(w = ev->data.ptr);
 
+        if (w->type == WATCH_INVALID)
+                return 0;
+
         switch (w->type) {
 
         case WATCH_SIGNAL:

commit f5319832c4cbec4c9569adf1a4512cc620ddc58a
Author: Lennart Poettering <lennart at poettering.net>
Date:   Mon Nov 15 20:10:04 2010 +0100

    units: use ConditionDirectoryNotEmpty= where applicable

diff --git a/TODO b/TODO
index 287de70..5730686 100644
--- a/TODO
+++ b/TODO
@@ -79,8 +79,6 @@
 
 * declare /etc/os-release cross-distro standard
 
-* add ConditionDirectoryNotEmpty=
-
 Pre v12:
 
 * fix hotplug transactions
diff --git a/units/systemd-modules-load.service.in b/units/systemd-modules-load.service.in
index 5948295..612338b 100644
--- a/units/systemd-modules-load.service.in
+++ b/units/systemd-modules-load.service.in
@@ -11,6 +11,7 @@ DefaultDependencies=no
 Conflicts=shutdown.target
 After=systemd-readahead-collect.service systemd-readahead-replay.service
 Before=basic.target shutdown.target
+ConditionDirectoryNotEmpty=/etc/modules-load.d
 
 [Service]
 Type=oneshot

commit 36af55d99711e9accdf42d8a7df60e069f4086c0
Author: Lennart Poettering <lennart at poettering.net>
Date:   Mon Nov 15 20:06:49 2010 +0100

    unit: introduce ConditionDirectoryNotEmpty=

diff --git a/man/systemd.unit.xml b/man/systemd.unit.xml
index 39862cf..b29473a 100644
--- a/man/systemd.unit.xml
+++ b/man/systemd.unit.xml
@@ -573,6 +573,7 @@
 
                         <varlistentry>
                                 <term><varname>ConditionPathExists=</varname></term>
+                                <term><varname>ConditionDirectoryNotEmpty=</varname></term>
                                 <term><varname>ConditionKernelCommandLine=</varname></term>
                                 <term><varname>ConditionNull=</varname></term>
 
@@ -594,7 +595,12 @@
                                 is prefixed with an exclamation mark
                                 (!), the test is negated, and the unit
                                 only started if the path does not
-                                exist. Similarly
+                                exist. <varname>ConditionDirectoryNotEmpty=</varname>
+                                is similar to
+                                <varname>ConditionPathExists=</varname>
+                                but verifies whether a cetrain path is
+                                exists and is a non-empty
+                                directory. Similarly
                                 <varname>ConditionKernelCommandLine=</varname>
                                 may be used to check whether a
                                 specific kernel command line option is
diff --git a/src/condition.c b/src/condition.c
index 4bbd4db..21da2eb 100644
--- a/src/condition.c
+++ b/src/condition.c
@@ -106,6 +106,13 @@ bool condition_test(Condition *c) {
         case CONDITION_PATH_EXISTS:
                 return (access(c->parameter, F_OK) >= 0) == !c->negate;
 
+        case CONDITION_DIRECTORY_NOT_EMPTY: {
+                int k;
+
+                k = dir_is_empty(c->parameter);
+                return !(k == -ENOENT || k > 0) == !c->negate;
+        }
+
         case CONDITION_KERNEL_COMMAND_LINE:
                 return !!test_kernel_command_line(c->parameter) == !c->negate;
 
diff --git a/src/condition.h b/src/condition.h
index b9d3f34..2f2689c 100644
--- a/src/condition.h
+++ b/src/condition.h
@@ -28,6 +28,7 @@
 
 typedef enum ConditionType {
         CONDITION_PATH_EXISTS,
+        CONDITION_DIRECTORY_NOT_EMPTY,
         CONDITION_KERNEL_COMMAND_LINE,
         CONDITION_NULL,
         _CONDITION_TYPE_MAX,
diff --git a/src/load-fragment.c b/src/load-fragment.c
index 9b39d91..1b23205 100644
--- a/src/load-fragment.c
+++ b/src/load-fragment.c
@@ -1448,7 +1448,8 @@ static int config_parse_condition_path(
                 return 0;
         }
 
-        if (!(c = condition_new(CONDITION_PATH_EXISTS, rvalue, negate)))
+        if (!(c = condition_new(streq(lvalue, "ConditionPathExists") ? CONDITION_PATH_EXISTS : CONDITION_DIRECTORY_NOT_EMPTY,
+                                rvalue, negate)))
                 return -ENOMEM;
 
         LIST_PREPEND(Condition, conditions, u->meta.conditions, c);
@@ -1815,6 +1816,7 @@ static int load_from_path(Unit *u, const char *path) {
                 { "DefaultDependencies",    config_parse_bool,            &u->meta.default_dependencies,                   "Unit"    },
                 { "JobTimeoutSec",          config_parse_usec,            &u->meta.job_timeout,                            "Unit"    },
                 { "ConditionPathExists",    config_parse_condition_path,  u,                                               "Unit"    },
+                { "ConditionDirectoryNotEmpty", config_parse_condition_path,  u,                                           "Unit"    },
                 { "ConditionKernelCommandLine", config_parse_condition_kernel, u,                                          "Unit"    },
                 { "ConditionNull",          config_parse_condition_null,  u,                                               "Unit"    },
 
diff --git a/src/path.c b/src/path.c
index f4a0a28..a8b1072 100644
--- a/src/path.c
+++ b/src/path.c
@@ -355,9 +355,13 @@ static void path_enter_waiting(Path *p, bool initial, bool recheck) {
                         good = access(s->path, F_OK) >= 0;
                         break;
 
-                case PATH_DIRECTORY_NOT_EMPTY:
-                        good = dir_is_empty(s->path) == 0;
+                case PATH_DIRECTORY_NOT_EMPTY: {
+                        int k;
+
+                        k = dir_is_empty(s->path);
+                        good = !(k == -ENOENT || k > 0);
                         break;
+                }
 
                 case PATH_CHANGED: {
                         bool b;

commit 5c273f855630bf54f6ebe95ea8b45c8abe2ffff6
Author: Matthias Clasen <matthias.clasen at gmail.com>
Date:   Mon Nov 15 19:54:57 2010 +0100

    build-sys: fix building against libnotify 0.7
    
    Here are two patches I needed to get systemd to build against the
    current libnotify and vala releases.

diff --git a/configure.ac b/configure.ac
index 5c6379c..b37e994 100644
--- a/configure.ac
+++ b/configure.ac
@@ -256,12 +256,12 @@ if test "$have_gtk" = "yes"; then
         AC_SUBST(DBUSGLIB_CFLAGS)
         AC_SUBST(DBUSGLIB_LIBS)
 
-        PKG_CHECK_MODULES(LIBNOTIFY, [ libnotify ])
+        PKG_CHECK_MODULES(LIBNOTIFY, [ libnotify >= 0.7.0 ])
         AC_SUBST(LIBNOTIFY_CFLAGS)
         AC_SUBST(LIBNOTIFY_LIBS)
 fi
 
-AM_PROG_VALAC([0.9])
+AM_PROG_VALAC([0.11])
 AC_SUBST(VAPIDIR)
 AM_CONDITIONAL(HAVE_VALAC, test x"$VALAC" != x)
 
diff --git a/src/gnome-ask-password-agent.vala b/src/gnome-ask-password-agent.vala
index 1523e2e..6cab6f9 100644
--- a/src/gnome-ask-password-agent.vala
+++ b/src/gnome-ask-password-agent.vala
@@ -38,8 +38,8 @@ public class PasswordDialog : Dialog {
                 set_default_response(ResponseType.OK);
                 set_icon_name(icon);
 
-                add_button(STOCK_CANCEL, ResponseType.CANCEL);
-                add_button(STOCK_OK, ResponseType.OK);
+                add_button(Stock.CANCEL, ResponseType.CANCEL);
+                add_button(Stock.OK, ResponseType.OK);
 
                 Container content = (Container) get_content_area();
 
@@ -181,8 +181,7 @@ public class MyStatusIcon : StatusIcon {
 
                 set_visible(true);
 
-                Notification n = new Notification(title, message, icon, null);
-                n.attach_to_status_icon(this);
+                Notification n = new Notification(title, message, icon);
                 n.set_timeout(5000);
                 n.show();
 
@@ -226,7 +225,7 @@ public class MyStatusIcon : StatusIcon {
 
                 OutputStream stream = new UnixOutputStream(to_process, true);
 
-                stream.write(password, password.length, null);
+                stream.write(password.data, null);
         }
 }
 



More information about the systemd-commits mailing list