pidfile_signal(): Return result of kill() and only remove on SIGKILL

If kill() is successful, and the signal was SIGKILL, we remove() the PID
file and return the rc of remove(), otherwise we always return the rc of
kill().

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
This commit is contained in:
Joachim Nilsson
2018-10-22 13:08:19 +02:00
parent 3989d91d36
commit 7e8534e36b
2 changed files with 7 additions and 3 deletions
+4
View File
@@ -9,6 +9,10 @@ All notable changes to the project are documented in this file.
### Changes
- Add support for `strmatch()` and `strnmatch()`
### Fixes
- Fix `pidfile_signal()`: always return result of `kill()`, or the
result of `remove()` if we successfully sent `SIGKILL`
[v2.0.2][] - 2018-05-10
-----------------------
+3 -3
View File
@@ -111,10 +111,10 @@ int pidfile_signal(const char *pidfile, int signal)
return 1;
ret = kill(pid, signal);
if ((ret == -1) || (signal == SIGTERM) || (signal == SIGKILL))
(void)remove(pidfile);
if (!ret && signal == SIGKILL)
ret = remove(pidfile);
return 0;
return ret;
}
/**