Frederic Crozat
9f8359725d
storage-after-cryptsetup.patch instead to prevent dependency cycle (bnc#722539). - Add delay-fsck-cryptsetup-after-md-lvm-dmraid.patch: ensure fsck/cryptsetup is run after lvm/md/dmraid have landed (bnc#724912). - Add cron-tty-pam.patch: Fix cron filling logs (bnc#731358). - Add do_not_warn_pidfile.patch: Fix PID warning in logs (bnc#732912). - Add mount-swap-log.patch: Ensure swap and mount output is redirected to default log target (rhb#750032). - Add color-on-boot.patch: ensure colored status are displayed at boot time. - Update modules_on_boot.patch to fix bnc#732041. - Replace private_tmp_crash.patch with log_on_close.patch, better upstream fix for bnc#699829 and fix bnc#731719. - Update vconsole patch to fix memleaks and crash (bnc#734527). - Add handle-racy-daemon.patch: fix warnings with sendmail (bnc#732912). - Add new-lsb-headers.patch: support PIDFile: and X-Systemd-RemainAfterExit: header in initscript (bnc#727771). - Update bootsplash services to not start if vga= is missing from cmdline (bnc#727771) - Add lock-opensuse.patch: disable /var/lock/{subsys,lockdev} and change default permissions on /var/lock (bnc#733523). - Add garbage_collect_units: ensure error units are correctly garbage collected (rhb#680122). - Add crypt-loop-file.patch: add support for crypt file loop (bnc#730496). OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=228
61 lines
2.3 KiB
Diff
61 lines
2.3 KiB
Diff
From c5419d4239ceb4c3bd0263a0a810cf24a072b3c0 Mon Sep 17 00:00:00 2001
|
|
From: Michal Schmidt <mschmidt@redhat.com>
|
|
Date: Thu, 10 Nov 2011 09:55:47 +0100
|
|
Subject: [PATCH] service: don't warn if the pidfile still exists after
|
|
SIGCHLD
|
|
|
|
A service that drops its privileges may not be able to remove it when it
|
|
exits. The stale pidfile is not a problem as long as the service
|
|
carefully recognizes it on its next start.
|
|
|
|
systemd would produce a warning after the service exits:
|
|
PID ... read from file ... does not exist. Your service or init
|
|
script might be broken.
|
|
|
|
Silence the warning in this case. Still warn if this error is detected
|
|
when loading the pidfile after service start.
|
|
|
|
Noticed by Miroslav Lichvar in
|
|
https://bugzilla.redhat.com/show_bug.cgi?id=752396
|
|
---
|
|
src/service.c | 9 +++++----
|
|
1 files changed, 5 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/src/service.c b/src/service.c
|
|
index eb475d9..6fc2484 100644
|
|
--- a/src/service.c
|
|
+++ b/src/service.c
|
|
@@ -1290,7 +1290,7 @@ static void service_dump(Unit *u, FILE *f, const char *prefix) {
|
|
free(p2);
|
|
}
|
|
|
|
-static int service_load_pid_file(Service *s, bool warn_if_missing) {
|
|
+static int service_load_pid_file(Service *s, bool may_warn) {
|
|
char *k;
|
|
int r;
|
|
pid_t pid;
|
|
@@ -1301,7 +1301,7 @@ static int service_load_pid_file(Service *s, bool warn_if_missing) {
|
|
return -ENOENT;
|
|
|
|
if ((r = read_one_line_file(s->pid_file, &k)) < 0) {
|
|
- if (warn_if_missing)
|
|
+ if (may_warn)
|
|
log_warning("Failed to read PID file %s after %s. The service might be broken.",
|
|
s->pid_file, service_state_to_string(s->state));
|
|
return r;
|
|
@@ -1314,8 +1314,9 @@ static int service_load_pid_file(Service *s, bool warn_if_missing) {
|
|
return r;
|
|
|
|
if (kill(pid, 0) < 0 && errno != EPERM) {
|
|
- log_warning("PID %lu read from file %s does not exist. Your service or init script might be broken.",
|
|
- (unsigned long) pid, s->pid_file);
|
|
+ if (may_warn)
|
|
+ log_warning("PID %lu read from file %s does not exist. Your service or init script might be broken.",
|
|
+ (unsigned long) pid, s->pid_file);
|
|
return -ESRCH;
|
|
}
|
|
|
|
--
|
|
1.7.7
|
|
|