chiark / gitweb /
systemd: reconnect to syslog as soon as the journal is fully up
authorLennart Poettering <lennart@poettering.net>
Wed, 11 Jan 2012 02:16:24 +0000 (03:16 +0100)
committerLennart Poettering <lennart@poettering.net>
Wed, 11 Jan 2012 02:16:24 +0000 (03:16 +0100)
src/logs-show.c
src/manager.c
src/special.h
src/systemd/sd-journal.h

index cb18da2aa5ae21ee61cf29cb491fa928706e7c31..2fe205fea6a7b9acb24b11ac270954f804089aa8 100644 (file)
@@ -178,6 +178,7 @@ static int output_short(sd_journal *j, unsigned line, bool show_all, bool monoto
                 uint64_t x;
                 time_t t;
                 struct tm tm;
+
                 r = -ENOENT;
 
                 if (realtime)
index dbcd630b05a63c80385c60520aa9e846ec751f55..54df7ebe5f94a2bfdc83f5e260a28e8978100e34 100644 (file)
@@ -3129,36 +3129,20 @@ void manager_recheck_syslog(Manager *m) {
         if (m->running_as != MANAGER_SYSTEM)
                 return;
 
-        if ((u = manager_get_unit(m, SPECIAL_SYSLOG_SOCKET))) {
-                SocketState state;
-
-                state = SOCKET(u)->state;
-
-                if (state != SOCKET_DEAD &&
-                    state != SOCKET_FAILED &&
-                    state != SOCKET_RUNNING) {
-
-                        /* Hmm, the socket is not set up, or is still
-                         * listening, let's better not try to use
-                         * it. Note that we have no problem if the
-                         * socket is completely down, since there
-                         * might be a foreign /dev/log socket around
-                         * and we want to make use of that.
-                         */
-
-                        log_close_syslog();
-                        return;
-                }
+        u = manager_get_unit(m, SPECIAL_JOURNALD_SOCKET);
+        if (u && SOCKET(u)->state != SOCKET_RUNNING) {
+                log_close_syslog();
+                return;
         }
 
-        if ((u = manager_get_unit(m, SPECIAL_SYSLOG_TARGET)))
-                if (TARGET(u)->state != TARGET_ACTIVE) {
-                        log_close_syslog();
-                        return;
-                }
+        u = manager_get_unit(m, SPECIAL_JOURNALD_SERVICE);
+        if (u && SERVICE(u)->state != SERVICE_RUNNING) {
+                log_close_syslog();
+                return;
+        }
 
-        /* Hmm, OK, so the socket is either fully up, or fully down,
-         * and the target is up, then let's make use of the socket */
+        /* Hmm, OK, so the socket is fully up and the service is up
+         * too, then let's make use of the thing. */
         log_open();
 }
 
index b90161c2386d306cab6d9b81f91bab61c296fda2..8185eaf60e32dae08fb576389dcb41012a67fb02 100644 (file)
@@ -71,7 +71,7 @@
 #define SPECIAL_DBUS_SERVICE "dbus.service"
 #define SPECIAL_DBUS_SOCKET "dbus.socket"
 #define SPECIAL_JOURNALD_SOCKET "systemd-journald.socket"
-#define SPECIAL_SYSLOG_SOCKET "syslog.socket"
+#define SPECIAL_JOURNALD_SERVICE "systemd-journald.service"
 
 /* Magic init signals */
 #define SPECIAL_KBREQUEST_TARGET "kbrequest.target"
index d0cb95045510fe3d13e2167bdc0065b5414f0cc8..ebc63b7640302c41c3a803add67f7bf52c68b820 100644 (file)
@@ -37,8 +37,6 @@
  *   - handle incomplete header
  *
  *   - kann NTP nicht finden?
- *   - in unit.c check ob syslog.socket wegen logging reconnect is kaputt
- *
  *
  *   - local deserializer
  *   - http server