summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/service.c10
-rw-r--r--src/journal/journald-server.c33
2 files changed, 40 insertions, 3 deletions
diff --git a/src/core/service.c b/src/core/service.c
index 5b92c901e3..ee4f4983fc 100644
--- a/src/core/service.c
+++ b/src/core/service.c
@@ -1756,7 +1756,15 @@ static void service_enter_start(Service *s) {
}
if (!c) {
- assert(s->type == SERVICE_ONESHOT);
+ if (s->type != SERVICE_ONESHOT) {
+ /* There's no command line configured for the main command? Hmm, that is strange. This can only
+ * happen if the configuration changes at runtime. In this case, let's enter a failure
+ * state. */
+ log_unit_error(UNIT(s), "There's no 'start' task anymore we could start: %m");
+ r = -ENXIO;
+ goto fail;
+ }
+
service_enter_start_post(s);
return;
}
diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c
index 5ea65e2deb..44962bc5d6 100644
--- a/src/journal/journald-server.c
+++ b/src/journal/journald-server.c
@@ -71,6 +71,7 @@
#include "string-table.h"
#include "string-util.h"
#include "user-util.h"
+#include "syslog-util.h"
#define USER_JOURNALS_MAX 1024
@@ -130,8 +131,6 @@ static void cache_space_invalidate(JournalStorageSpace *space) {
}
static int cache_space_refresh(Server *s, JournalStorage *storage) {
-
- _cleanup_closedir_ DIR *d = NULL;
JournalStorageSpace *space;
JournalMetrics *metrics;
uint64_t vfs_used, vfs_avail, avail;
@@ -1573,6 +1572,36 @@ static int server_parse_proc_cmdline(Server *s) {
log_warning("Failed to parse forward to wall switch %s. Ignoring.", word + 33);
else
s->forward_to_wall = r;
+ } else if (startswith(word, "systemd.journald.max_level_console=")) {
+ r = log_level_from_string(word + 35);
+ if (r < 0)
+ log_warning("Failed to parse max level console value %s. Ignoring.", word + 35);
+ else
+ s->max_level_console = r;
+ } else if (startswith(word, "systemd.journald.max_level_store=")) {
+ r = log_level_from_string(word + 33);
+ if (r < 0)
+ log_warning("Failed to parse max level store value %s. Ignoring.", word + 33);
+ else
+ s->max_level_store = r;
+ } else if (startswith(word, "systemd.journald.max_level_syslog=")) {
+ r = log_level_from_string(word + 34);
+ if (r < 0)
+ log_warning("Failed to parse max level syslog value %s. Ignoring.", word + 34);
+ else
+ s->max_level_syslog = r;
+ } else if (startswith(word, "systemd.journald.max_level_kmsg=")) {
+ r = log_level_from_string(word + 32);
+ if (r < 0)
+ log_warning("Failed to parse max level kmsg value %s. Ignoring.", word + 32);
+ else
+ s->max_level_kmsg = r;
+ } else if (startswith(word, "systemd.journald.max_level_wall=")) {
+ r = log_level_from_string(word + 32);
+ if (r < 0)
+ log_warning("Failed to parse max level wall value %s. Ignoring.", word + 32);
+ else
+ s->max_level_wall = r;
} else if (startswith(word, "systemd.journald"))
log_warning("Invalid systemd.journald parameter. Ignoring.");
}