drop support for MANAGER_SESSION, introduce MANAGER_USER instead

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

View File

@ -30,9 +30,9 @@ bashcompletiondir=$(sysconfdir)/bash_completion.d
# Our own, non-special dirs
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@.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@.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 && \

4
TODO
View File

@ -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:

View File

@ -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

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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

View File

@ -854,7 +854,7 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection,
} else if (dbus_message_is_method_call(message, "org.freedesktop.systemd1.Manager", "Exit")) {
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);
}

View File

@ -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;

View File

@ -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";

View File

@ -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);

View File

@ -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;

View File

@ -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(

View File

@ -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);

View File

@ -252,7 +252,7 @@ int sd_notifyf(int unset_environment, const char *format, ...) _sd_printf_attr_(
fine. You should NOT protect them with a call to this function. Also
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.
*/

View File

@ -1014,7 +1014,7 @@ static int service_add_default_dependencies(Service *s) {
if ((r = unit_add_two_dependencies_by_name(UNIT(s), UNIT_AFTER, UNIT_REQUIRES, SPECIAL_BASIC_TARGET, NULL, true)) < 0)
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;

View File

@ -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 }
};

View File

@ -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'
)

View File

@ -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) {

View File

@ -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@

View File

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