return -ENOMEM;
r = unit_add_dependency_by_name(u, d, k, NULL, true);
return -ENOMEM;
r = unit_add_dependency_by_name(u, d, k, NULL, true);
- log_error("[%s:%u] Failed to parse address value: %s", filename, line, rvalue);
+ log_error("[%s:%u] Failed to parse address value, ignoring: %s", filename, line, rvalue);
- log_error("[%s:%u] Failed to parse bind IPv6 only value: %s", filename, line, rvalue);
- return -EBADMSG;
+ log_error("[%s:%u] Failed to parse bind IPv6 only value, ignoring: %s", filename, line, rvalue);
+ return 0;
- log_error("[%s:%u] Failed to parse nice priority: %s", filename, line, rvalue);
- return r;
+ log_error("[%s:%u] Failed to parse nice priority, ignoring: %s. ", filename, line, rvalue);
+ return 0;
- log_error("[%s:%u] Nice priority out of range: %s", filename, line, rvalue);
- return -ERANGE;
+ log_error("[%s:%u] Nice priority out of range, ignoring: %s", filename, line, rvalue);
+ return 0;
- log_error("[%s:%u] Failed to parse OOM adjust value: %s", filename, line, rvalue);
- return r;
+ log_error("[%s:%u] Failed to parse the OOM score adjust value, ignoring: %s", filename, line, rvalue);
+ return 0;
- if (oa < OOM_DISABLE || oa > OOM_ADJUST_MAX) {
- log_error("[%s:%u] OOM adjust value out of range: %s", filename, line, rvalue);
- return -ERANGE;
+ if (oa < OOM_SCORE_ADJ_MIN || oa > OOM_SCORE_ADJ_MAX) {
+ log_error("[%s:%u] OOM score adjust value out of range, ignoring: %s", filename, line, rvalue);
+ return 0;
- log_error("[%s:%u] Failed to parse mode value: %s", filename, line, rvalue);
- return errno ? -errno : -EINVAL;
+ log_error("[%s:%u] Failed to parse mode value, ignoring: %s", filename, line, rvalue);
+ return 0;
- log_error("[%s:%u] mode value out of range: %s", filename, line, rvalue);
- return -ERANGE;
+ log_error("[%s:%u] mode value out of range, ignoring: %s", filename, line, rvalue);
+ return 0;
- log_error("[%s:%u] Invalid executable path in command line: %s", filename, line, rvalue);
- return -EINVAL;
+ log_error("[%s:%u] Invalid executable path in command line, ignoring: %s", filename, line, rvalue);
+ return 0;
- log_error("[%s:%u] Invalid command line: %s", filename, line, rvalue);
+ log_error("[%s:%u] Invalid command line, ignoring: %s", filename, line, rvalue);
- log_error("[%s:%u] Failed to parse time value: %s", filename, line, rvalue);
- return r;
+ log_error("[%s:%u] Failed to parse time value, ignoring: %s", filename, line, rvalue);
+ return 0;
- log_error("[%s:%u] Failed to parse log facility: %s", filename, line, rvalue);
- return -EBADMSG;
+ log_error("[%s:%u] Failed to parse log facility, ignoring: %s", filename, line, rvalue);
+ return 0;
- log_error("[%s:%u] Failed to parse log level: %s", filename, line, rvalue);
- return -EBADMSG;
+ log_error("[%s:%u] Failed to parse log level, ignoring: %s", filename, line, rvalue);
+ return 0;
- log_error("[%s:%u] Failed to parse IO scheduling class: %s", filename, line, rvalue);
- return -EBADMSG;
+ log_error("[%s:%u] Failed to parse IO scheduling class, ignoring: %s", filename, line, rvalue);
+ return 0;
- log_error("[%s:%u] Failed to parse io priority: %s", filename, line, rvalue);
- return -EBADMSG;
+ log_error("[%s:%u] Failed to parse io priority, ignoring: %s", filename, line, rvalue);
+ return 0;
- log_error("[%s:%u] Failed to parse CPU scheduling policy: %s", filename, line, rvalue);
- return -EBADMSG;
+ log_error("[%s:%u] Failed to parse CPU scheduling policy, ignoring: %s", filename, line, rvalue);
+ return 0;
/* On Linux RR/FIFO have the same range */
if (safe_atoi(rvalue, &i) < 0 || i < sched_get_priority_min(SCHED_RR) || i > sched_get_priority_max(SCHED_RR)) {
/* On Linux RR/FIFO have the same range */
if (safe_atoi(rvalue, &i) < 0 || i < sched_get_priority_min(SCHED_RR) || i > sched_get_priority_max(SCHED_RR)) {
- log_error("[%s:%u] Failed to parse CPU scheduling priority: %s", filename, line, rvalue);
- return -EBADMSG;
+ log_error("[%s:%u] Failed to parse CPU scheduling priority, ignoring: %s", filename, line, rvalue);
+ return 0;
- log_error("[%s:%u] Failed to parse CPU affinity: %s", filename, line, rvalue);
- return -EBADMSG;
+ log_error("[%s:%u] Failed to parse CPU affinity, ignoring: %s", filename, line, rvalue);
+ return 0;
- log_error("[%s:%u] Failed to parse capabilities: %s", filename, line, rvalue);
- return -EBADMSG;
+ log_error("[%s:%u] Failed to parse capabilities, ignoring: %s", filename, line, rvalue);
+ return 0;
else if (first_word(w, "noroot-locked"))
c->secure_bits |= SECURE_NOROOT_LOCKED;
else {
else if (first_word(w, "noroot-locked"))
c->secure_bits |= SECURE_NOROOT_LOCKED;
else {
- log_error("[%s:%u] Failed to parse secure bits: %s", filename, line, rvalue);
- return -EBADMSG;
+ log_error("[%s:%u] Failed to parse secure bits, ignoring: %s", filename, line, rvalue);
+ return 0;
- log_error("[%s:%u] Failed to parse capability bounding set: %s", filename, line, rvalue);
- return -EBADMSG;
+ log_error("[%s:%u] Failed to parse capability bounding set, ignoring: %s", filename, line, rvalue);
+ return 0;
- log_error("[%s:%u] Failed to parse time slack value: %s", filename, line, rvalue);
- return r;
+ log_error("[%s:%u] Failed to parse time slack value, ignoring: %s", filename, line, rvalue);
+ return 0;
- log_error("[%s:%u] Failed to parse resource value: %s", filename, line, rvalue);
- return r;
+ log_error("[%s:%u] Failed to parse resource value, ignoring: %s", filename, line, rvalue);
+ return 0;
- log_error("[%s:%u] Failed to parse SysV start priority: %s", filename, line, rvalue);
- return r;
+ log_error("[%s:%u] Failed to parse SysV start priority, ignoring: %s", filename, line, rvalue);
+ return 0;
- log_error("[%s:%u] Failed to parse kill signal: %s", filename, line, rvalue);
- return -EINVAL;
+ log_error("[%s:%u] Failed to parse kill signal, ignoring: %s", filename, line, rvalue);
+ return 0;
- log_error("[%s:%u] Failed to parse mount flags: %s", filename, line, rvalue);
- return -EINVAL;
+ log_error("[%s:%u] Failed to parse mount flags, ignoring: %s", filename, line, rvalue);
+ return 0;
- log_error("[%s:%u] Failed to parse timer base: %s", filename, line, lvalue);
- return -EINVAL;
+ log_error("[%s:%u] Failed to parse timer base, ignoring: %s", filename, line, lvalue);
+ return 0;
- log_error("[%s:%u] Failed to parse timer value: %s", filename, line, rvalue);
- return r;
+ log_error("[%s:%u] Failed to parse timer value, ignoring: %s", filename, line, rvalue);
+ return 0;
- log_error("[%s:%u] Unit cannot be of type timer: %s", filename, line, rvalue);
- return -EINVAL;
+ log_error("[%s:%u] Unit cannot be of type timer, ignoring: %s", filename, line, rvalue);
+ return 0;
}
if ((r = manager_load_unit(t->meta.manager, rvalue, NULL, NULL, &t->unit)) < 0) {
}
if ((r = manager_load_unit(t->meta.manager, rvalue, NULL, NULL, &t->unit)) < 0) {
- log_error("[%s:%u] Failed to load unit %s: %s", filename, line, rvalue, bus_error(&error, r));
+ log_error("[%s:%u] Failed to load unit %s, ignoring: %s", filename, line, rvalue, bus_error(&error, r));
- log_error("[%s:%u] Failed to parse path type: %s", filename, line, lvalue);
- return -EINVAL;
+ log_error("[%s:%u] Failed to parse path type, ignoring: %s", filename, line, lvalue);
+ return 0;
- log_error("[%s:%u] Path is not absolute: %s", filename, line, rvalue);
- return -EINVAL;
+ log_error("[%s:%u] Path is not absolute, ignoring: %s", filename, line, rvalue);
+ return 0;
- log_error("[%s:%u] Unit cannot be of type path: %s", filename, line, rvalue);
- return -EINVAL;
+ log_error("[%s:%u] Unit cannot be of type path, ignoring: %s", filename, line, rvalue);
+ return 0;
}
if ((r = manager_load_unit(t->meta.manager, rvalue, NULL, &error, &t->unit)) < 0) {
}
if ((r = manager_load_unit(t->meta.manager, rvalue, NULL, &error, &t->unit)) < 0) {
- log_error("[%s:%u] Failed to load unit %s: %s", filename, line, rvalue, bus_error(&error, r));
+ log_error("[%s:%u] Failed to load unit %s, ignoring: %s", filename, line, rvalue, bus_error(&error, r));
- log_error("[%s:%u] Failed to open environment file '%s': %m", filename, line, rvalue);
- return -errno;
+ log_error("[%s:%u] Failed to open environment file '%s', ignoring: %m", filename, line, rvalue);
+ return 0;
- log_error("[%s:%u] Failed to read environment file '%s': %m", filename, line, rvalue);
+ log_error("[%s:%u] Failed to read environment file '%s', ignoring: %m", filename, line, rvalue);
+ r = 0;
if ((x = ip_tos_from_string(rvalue)) < 0)
if ((r = safe_atoi(rvalue, &x)) < 0) {
if ((x = ip_tos_from_string(rvalue)) < 0)
if ((r = safe_atoi(rvalue, &x)) < 0) {
- log_error("[%s:%u] Failed to parse IP TOS value: %s", filename, line, rvalue);
- return r;
+ log_error("[%s:%u] Failed to parse IP TOS value, ignoring: %s", filename, line, rvalue);
+ return 0;
{ config_parse_path, "PATH" },
{ config_parse_strv, "STRING [...]" },
{ config_parse_nice, "NICE" },
{ config_parse_path, "PATH" },
{ config_parse_strv, "STRING [...]" },
{ config_parse_nice, "NICE" },
{ config_parse_io_class, "IOCLASS" },
{ config_parse_io_priority, "IOPRIORITY" },
{ config_parse_cpu_sched_policy, "CPUSCHEDPOLICY" },
{ config_parse_io_class, "IOCLASS" },
{ config_parse_io_priority, "IOPRIORITY" },
{ config_parse_cpu_sched_policy, "CPUSCHEDPOLICY" },
{ "Group", config_parse_string_printf, &(context).group, section }, \
{ "SupplementaryGroups", config_parse_strv, &(context).supplementary_groups, section }, \
{ "Nice", config_parse_nice, &(context), section }, \
{ "Group", config_parse_string_printf, &(context).group, section }, \
{ "SupplementaryGroups", config_parse_strv, &(context).supplementary_groups, section }, \
{ "Nice", config_parse_nice, &(context), section }, \
- { "OOMAdjust", config_parse_oom_adjust, &(context), section }, \
+ { "OOMScoreAdjust", config_parse_oom_score_adjust,&(context), section }, \
{ "IOSchedulingClass", config_parse_io_class, &(context), section }, \
{ "IOSchedulingPriority", config_parse_io_priority, &(context), section }, \
{ "CPUSchedulingPolicy", config_parse_cpu_sched_policy,&(context), section }, \
{ "IOSchedulingClass", config_parse_io_class, &(context), section }, \
{ "IOSchedulingPriority", config_parse_io_priority, &(context), section }, \
{ "CPUSchedulingPolicy", config_parse_cpu_sched_policy,&(context), section }, \
{ "OnFailure", config_parse_deps, UINT_TO_PTR(UNIT_ON_FAILURE), "Unit" },
{ "RecursiveStop", config_parse_bool, &u->meta.recursive_stop, "Unit" },
{ "StopWhenUnneeded", config_parse_bool, &u->meta.stop_when_unneeded, "Unit" },
{ "OnFailure", config_parse_deps, UINT_TO_PTR(UNIT_ON_FAILURE), "Unit" },
{ "RecursiveStop", config_parse_bool, &u->meta.recursive_stop, "Unit" },
{ "StopWhenUnneeded", config_parse_bool, &u->meta.stop_when_unneeded, "Unit" },
- { "OnlyByDependency", config_parse_bool, &u->meta.only_by_dependency, "Unit" },
+ { "RefuseManualStart", config_parse_bool, &u->meta.refuse_manual_start, "Unit" },
+ { "RefuseManualStop", config_parse_bool, &u->meta.refuse_manual_stop, "Unit" },
+ { "AllowIsolate", config_parse_bool, &u->meta.allow_isolate, "Unit" },
{ "DefaultDependencies", config_parse_bool, &u->meta.default_dependencies, "Unit" },
{ "IgnoreDependencyFailure",config_parse_bool, &u->meta.ignore_dependency_failure, "Unit" },
{ "JobTimeoutSec", config_parse_usec, &u->meta.job_timeout, "Unit" },
{ "DefaultDependencies", config_parse_bool, &u->meta.default_dependencies, "Unit" },
{ "IgnoreDependencyFailure",config_parse_bool, &u->meta.ignore_dependency_failure, "Unit" },
{ "JobTimeoutSec", config_parse_usec, &u->meta.job_timeout, "Unit" },
{ "Restart", config_parse_service_restart, &u->service.restart, "Service" },
{ "PermissionsStartOnly", config_parse_bool, &u->service.permissions_start_only, "Service" },
{ "RootDirectoryStartOnly", config_parse_bool, &u->service.root_directory_start_only, "Service" },
{ "Restart", config_parse_service_restart, &u->service.restart, "Service" },
{ "PermissionsStartOnly", config_parse_bool, &u->service.permissions_start_only, "Service" },
{ "RootDirectoryStartOnly", config_parse_bool, &u->service.root_directory_start_only, "Service" },
- { "ValidNoProcess", config_parse_bool, &u->service.valid_no_process, "Service" },
+ { "RemainAfterExit", config_parse_bool, &u->service.remain_after_exit, "Service" },
{ "SysVStartPriority", config_parse_sysv_priority, &u->service.sysv_start_priority, "Service" },
{ "NonBlocking", config_parse_bool, &u->service.exec_context.non_blocking, "Service" },
{ "BusName", config_parse_string_printf, &u->service.bus_name, "Service" },
{ "SysVStartPriority", config_parse_sysv_priority, &u->service.sysv_start_priority, "Service" },
{ "NonBlocking", config_parse_bool, &u->service.exec_context.non_blocking, "Service" },
{ "BusName", config_parse_string_printf, &u->service.bus_name, "Service" },
{ "Mark", config_parse_int, &u->socket.mark, "Socket" },
{ "PipeSize", config_parse_size, &u->socket.pipe_size, "Socket" },
{ "FreeBind", config_parse_bool, &u->socket.free_bind, "Socket" },
{ "Mark", config_parse_int, &u->socket.mark, "Socket" },
{ "PipeSize", config_parse_size, &u->socket.pipe_size, "Socket" },
{ "FreeBind", config_parse_bool, &u->socket.free_bind, "Socket" },
EXEC_CONTEXT_CONFIG_ITEMS(u->socket.exec_context, "Socket"),
{ "What", config_parse_string, &u->mount.parameters_fragment.what, "Mount" },
EXEC_CONTEXT_CONFIG_ITEMS(u->socket.exec_context, "Socket"),
{ "What", config_parse_string, &u->mount.parameters_fragment.what, "Mount" },