mirror of
https://github.com/troglobit/finit.git
synced 2026-10-10 16:52:39 +07:00
Follow-up to a47abfd, fix logged PID reported by external logger tool
Issue #344 Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
+8
-7
@@ -243,9 +243,12 @@ static void fallback_logger(char *ident, char *prio)
|
||||
static int lredirect(svc_t *svc)
|
||||
{
|
||||
static int have_sysklogd = -1;
|
||||
pid_t pid;
|
||||
pid_t pid, svc_pid;
|
||||
int fd;
|
||||
|
||||
svc_pid = getpid();
|
||||
dbg("%s pid: %d", svc_ident(svc, NULL, 0), svc_pid);
|
||||
|
||||
/*
|
||||
* Open PTY to connect to logger. A pty isn't buffered
|
||||
* like a pipe, and it eats newlines so they aren't logged
|
||||
@@ -268,21 +271,19 @@ static int lredirect(svc_t *svc)
|
||||
if (have_sysklogd == -1) {
|
||||
FILE *pp;
|
||||
|
||||
have_sysklogd = 0;
|
||||
|
||||
pp = popen("logger -h 2>/dev/null", "r");
|
||||
if (pp) {
|
||||
char buf[128];
|
||||
|
||||
have_sysklogd = 0;
|
||||
while (fgets(buf, sizeof(buf), pp)) {
|
||||
if (strstr(buf, "-I PID")) {
|
||||
have_sysklogd = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
pclose(pp);
|
||||
} else {
|
||||
have_sysklogd = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -318,7 +319,7 @@ static int lredirect(svc_t *svc)
|
||||
char rot[25], pid[16];
|
||||
|
||||
snprintf(rot, sizeof(rot), "%d:%d", logfile_size_max, logfile_count_max);
|
||||
snprintf(pid, sizeof(pid), "%d", getppid());
|
||||
snprintf(pid, sizeof(pid), "%d", svc_pid);
|
||||
execlp("logger", "logger", "-f", svc->log.file, "-b", "-t", tag, "-p", prio, "-I", pid, "-r", rot, NULL);
|
||||
} else {
|
||||
char sz[20], num[3];
|
||||
@@ -339,7 +340,7 @@ static int lredirect(svc_t *svc)
|
||||
if (have_sysklogd) {
|
||||
char pid[16];
|
||||
|
||||
snprintf(pid, sizeof(pid), "%d", getppid());
|
||||
snprintf(pid, sizeof(pid), "%d", svc_pid);
|
||||
execlp("logger", "logger", "-t", tag, "-p", prio, "-I", pid, NULL);
|
||||
} else {
|
||||
execlp(_PATH_LOGIT, "logit", "-t", tag, "-p", prio, NULL);
|
||||
|
||||
Reference in New Issue
Block a user