[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