chiark / gitweb /
syslog: make sure the kmsg bridge is always pulled in and never terminated automatically
authorLennart Poettering <lennart@poettering.net>
Mon, 7 Mar 2011 20:56:09 +0000 (21:56 +0100)
committerLennart Poettering <lennart@poettering.net>
Mon, 7 Mar 2011 20:56:13 +0000 (21:56 +0100)
Since we want to replace the bridge dynamically by the real syslog
implementation such as rsyslog we need to make sure that the the bridge
stays running right to the moment rsyslog is up so that we process
messages enqueued by other processes started before rsyslog, so that
those clients don't stay stuck.

Makefile.am
src/kmsg-syslogd.c

index 7bbdb24bd8a2cd25ee2b74765754b42c76e571e1..8d34dab8d9a5d51271b9d0ea2e9327f207b4eac8 100644 (file)
@@ -1292,6 +1292,7 @@ install-data-hook:
                        systemd-tmpfiles-setup.service \
                        systemd-sysctl.service \
                        systemd-ask-password-console.path \
                        systemd-tmpfiles-setup.service \
                        systemd-sysctl.service \
                        systemd-ask-password-console.path \
+                       systemd-kmsg-syslogd.service \
                        cryptsetup.target && \
                $(LN_S) ../dev-hugepages.automount dev-hugepages.automount && \
                $(LN_S) ../dev-mqueue.automount dev-mqueue.automount && \
                        cryptsetup.target && \
                $(LN_S) ../dev-hugepages.automount dev-hugepages.automount && \
                $(LN_S) ../dev-mqueue.automount dev-mqueue.automount && \
@@ -1304,6 +1305,7 @@ install-data-hook:
                $(LN_S) ../systemd-tmpfiles-setup.service systemd-tmpfiles-setup.service && \
                $(LN_S) ../systemd-sysctl.service systemd-sysctl.service && \
                $(LN_S) ../systemd-ask-password-console.path systemd-ask-password-console.path && \
                $(LN_S) ../systemd-tmpfiles-setup.service systemd-tmpfiles-setup.service && \
                $(LN_S) ../systemd-sysctl.service systemd-sysctl.service && \
                $(LN_S) ../systemd-ask-password-console.path systemd-ask-password-console.path && \
+               $(LN_S) ../systemd-kmsg-syslogd.service && \
                $(LN_S) ../cryptsetup.target cryptsetup.target )
        ( cd $(DESTDIR)$(systemunitdir)/basic.target.wants && \
                rm -f systemd-tmpfiles-clean.timer && \
                $(LN_S) ../cryptsetup.target cryptsetup.target )
        ( cd $(DESTDIR)$(systemunitdir)/basic.target.wants && \
                rm -f systemd-tmpfiles-clean.timer && \
index e23c9d38626d5ce1f885a60af72c017840e6b277..4edb16136b58cb6ac1a53b37b2cc159138c86f04 100644 (file)
@@ -39,7 +39,6 @@
 #include "fdset.h"
 
 #define SERVER_FD_MAX 16
 #include "fdset.h"
 
 #define SERVER_FD_MAX 16
-#define TIMEOUT ((int) (5*60*MSEC_PER_SEC))
 
 typedef struct Stream Stream;
 
 
 typedef struct Stream Stream;
 
@@ -512,7 +511,7 @@ int main(int argc, char *argv[]) {
                 struct epoll_event event;
                 int k;
 
                 struct epoll_event event;
                 int k;
 
-                if ((k = epoll_wait(server.epoll_fd, &event, 1, TIMEOUT)) < 0) {
+                if ((k = epoll_wait(server.epoll_fd, &event, 1, -1)) < 0) {
 
                         if (errno == EINTR)
                                 continue;
 
                         if (errno == EINTR)
                                 continue;