diff options
author | Lennart Poettering <lennart@poettering.net> | 2012-06-22 16:24:57 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2012-06-22 16:24:57 +0200 |
commit | 8ff290af3b7db00eef76bdec61fee4aca7d84d0b (patch) | |
tree | f378f2089f6582f1a15a45134827b130b9bdce89 | |
parent | a3a3e5b6ae7836152052d77a9e6032a9e84e2039 (diff) |
unit: drop the Names= option
Names= is a source of errors, simply because alias names specified like
this only become relevant after a unit has been loaded but cannot be
used to load a unit.
Let's get rid of the confusion and drop this field. To establish alias
names peope should use symlinks, which have the the benefit of being
useful as key to load a unit, even though they are not taken into
account if unit names are listed but they haven't been explicitly
referenced before.
-rw-r--r-- | TODO | 2 | ||||
-rw-r--r-- | man/systemd.unit.xml | 54 | ||||
-rw-r--r-- | src/core/load-fragment-gperf.gperf.m4 | 1 | ||||
-rw-r--r-- | src/core/load-fragment.c | 44 | ||||
-rw-r--r-- | src/core/load-fragment.h | 1 |
5 files changed, 1 insertions, 101 deletions
@@ -399,5 +399,3 @@ Regularly: Scheduled for removal (or fixing): * xxxOverridable dependencies - -* Names= unit option diff --git a/man/systemd.unit.xml b/man/systemd.unit.xml index 123965bd44..93fb37b72b 100644 --- a/man/systemd.unit.xml +++ b/man/systemd.unit.xml @@ -870,35 +870,6 @@ </varlistentry> <varlistentry> - <term><varname>Names=</varname></term> - - <listitem><para>Additional names for - this unit. The names listed here must - have the same suffix (i.e. type) as - the unit file name. This option may be - specified more than once, in which - case all listed names are used. Note - that this option is different from the - <varname>Alias=</varname> option from - the [Install] section mentioned - below. See below for details. Note - that in almost all cases this option - is not what you want. A symlink alias - in the file system is generally - preferable since it can be used as - lookup key. If a unit with a symlinked - alias name is not loaded and needs to - be it is easily found via the - symlink. However, if a unit with an - alias name configured with this - setting is not loaded it will not be - discovered. This settings' only use is - in conjunction with service - instances.</para> - </listitem> - </varlistentry> - - <varlistentry> <term><varname>SourcePath=</varname></term> <listitem><para>A path to a configuration file this unit has been @@ -936,30 +907,7 @@ time, <command>systemctl enable</command> will create symlinks from these names - to the unit file name. Note that this - is different from the - <varname>Names=</varname> option from - the [Unit] section mentioned above: - The names from - <varname>Names=</varname> apply - unconditionally if the unit is - loaded. The names from - <varname>Alias=</varname> apply only - if the unit has actually been - installed with the - <command>systemctl enable</command> - command. Also, if systemd searches for a - unit, it will discover symlinked alias - names as configured with - <varname>Alias=</varname>, but not - names configured with - <varname>Names=</varname> only. It is - a common pattern to list a name in - both options. In this case, a unit - will be active under all names if - installed, but also if not installed - but requested explicitly under its - main name.</para></listitem> + to the unit file name.</para></listitem> </varlistentry> <varlistentry> diff --git a/src/core/load-fragment-gperf.gperf.m4 b/src/core/load-fragment-gperf.gperf.m4 index d51c7ac5e2..f5e9b70672 100644 --- a/src/core/load-fragment-gperf.gperf.m4 +++ b/src/core/load-fragment-gperf.gperf.m4 @@ -90,7 +90,6 @@ $1.UtmpIdentifier, config_parse_unit_string_printf, 0, $1.ControlGroupModify, config_parse_bool, 0, offsetof($1, exec_context.control_group_modify) $1.ControlGroupPersistent, config_parse_tristate, 0, offsetof($1, exec_context.control_group_persistent)' )m4_dnl -Unit.Names, config_parse_unit_names, 0, 0 Unit.Description, config_parse_unit_string_printf, 0, offsetof(Unit, description) Unit.Documentation, config_parse_documentation, 0, offsetof(Unit, documentation) Unit.SourcePath, config_parse_path, 0, offsetof(Unit, source_path) diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c index 22da6c1197..1ca0dece67 100644 --- a/src/core/load-fragment.c +++ b/src/core/load-fragment.c @@ -105,49 +105,6 @@ int config_parse_unit_deps( return 0; } -int config_parse_unit_names( - const char *filename, - unsigned line, - const char *section, - const char *lvalue, - int ltype, - const char *rvalue, - void *data, - void *userdata) { - - Unit *u = userdata; - char *w; - size_t l; - char *state; - - assert(filename); - assert(lvalue); - assert(rvalue); - assert(data); - - FOREACH_WORD_QUOTED(w, l, rvalue, state) { - char *t, *k; - int r; - - t = strndup(w, l); - if (!t) - return -ENOMEM; - - k = unit_name_printf(u, t); - free(t); - if (!k) - return -ENOMEM; - - r = unit_merge_by_name(u, k); - if (r < 0) - log_error("Failed to add name %s, ignoring: %s", k, strerror(-r)); - - free(k); - } - - return 0; -} - int config_parse_unit_string_printf( const char *filename, unsigned line, @@ -2395,7 +2352,6 @@ void unit_dump_config_items(FILE *f) { { config_parse_limit, "LIMIT" }, { config_parse_unit_cgroup, "CGROUP [...]" }, { config_parse_unit_deps, "UNIT [...]" }, - { config_parse_unit_names, "UNIT [...]" }, { config_parse_exec, "PATH [ARGUMENT [...]]" }, { config_parse_service_type, "SERVICETYPE" }, { config_parse_service_restart, "SERVICERESTART" }, diff --git a/src/core/load-fragment.h b/src/core/load-fragment.h index 9a3465a166..501ea4ad47 100644 --- a/src/core/load-fragment.h +++ b/src/core/load-fragment.h @@ -32,7 +32,6 @@ void unit_dump_config_items(FILE *f); int config_parse_warn_compat(const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); int config_parse_unit_deps(const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); -int config_parse_unit_names(const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); int config_parse_unit_string_printf(const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); int config_parse_unit_strv_printf(const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); int config_parse_unit_path_printf(const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); |