summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2011-03-07 21:56:09 +0100
committerLennart Poettering <lennart@poettering.net>2011-03-07 21:56:13 +0100
commitb670e92b50686773c82ccb4c07f93e85ff90783b (patch)
treeeab849ce13a2d0bd3a700e366fe4f04db0ca16f9
parent0992bbd109d60ce10ddd8895259fd9b4c1bbfdb5 (diff)
syslog: make sure the kmsg bridge is always pulled in and never terminated automatically
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.
-rw-r--r--Makefile.am2
-rw-r--r--src/kmsg-syslogd.c3
2 files changed, 3 insertions, 2 deletions
diff --git a/Makefile.am b/Makefile.am
index 7bbdb24bd8..8d34dab8d9 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1292,6 +1292,7 @@ install-data-hook:
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 && \
@@ -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-kmsg-syslogd.service && \
$(LN_S) ../cryptsetup.target cryptsetup.target )
( cd $(DESTDIR)$(systemunitdir)/basic.target.wants && \
rm -f systemd-tmpfiles-clean.timer && \
diff --git a/src/kmsg-syslogd.c b/src/kmsg-syslogd.c
index e23c9d3862..4edb16136b 100644
--- a/src/kmsg-syslogd.c
+++ b/src/kmsg-syslogd.c
@@ -39,7 +39,6 @@
#include "fdset.h"
#define SERVER_FD_MAX 16
-#define TIMEOUT ((int) (5*60*MSEC_PER_SEC))
typedef struct Stream Stream;
@@ -512,7 +511,7 @@ int main(int argc, char *argv[]) {
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;