chiark / gitweb /
shared/log: read /proc/cmdline only in daemons
[elogind.git] / src / shared / log.c
index 9c0156026d0a5a7d57b3596fcdae69c2d0dc57cb..646a1d6389822a358a3d2ec30c4b01497e9d29cf 100644 (file)
@@ -914,7 +914,9 @@ static int parse_proc_cmdline_item(const char *key, const char *value) {
          * The systemd.log_xyz= settings are parsed by all tools, and
          * so is "debug".
          *
-         * However, "quiet" is only parsed by PID 1!
+         * However, "quiet" is only parsed by PID 1, and only turns of
+         * status output to /dev/console, but does not alter the log
+         * level.
          */
 
         if (streq(key, "debug") && !value)
@@ -947,7 +949,11 @@ static int parse_proc_cmdline_item(const char *key, const char *value) {
 void log_parse_environment(void) {
         const char *e;
 
-        (void) parse_proc_cmdline(parse_proc_cmdline_item);
+        if (get_ctty_devnr(0, NULL) < 0)
+                /* Only try to read the command line in daemons.
+                   We assume that anything that has a controlling
+                   tty is user stuff. */
+                (void) parse_proc_cmdline(parse_proc_cmdline_item);
 
         e = secure_getenv("SYSTEMD_LOG_TARGET");
         if (e && log_set_target_from_string(e) < 0)