From 4d0d3d41d21f34f28ee67b8b1952af88ada7abaf Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 26 Oct 2015 01:13:11 +0100 Subject: [PATCH] process-util: move more process related calls to process-util.[ch] --- src/basic/process-util.c | 10 ++++++++++ src/basic/process-util.h | 3 +++ src/basic/util.c | 10 ---------- src/basic/util.h | 4 ---- 4 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/basic/process-util.c b/src/basic/process-util.c index 65c9379..72fc82e 100644 --- a/src/basic/process-util.c +++ b/src/basic/process-util.c @@ -480,6 +480,16 @@ int wait_for_terminate_and_warn(const char *name, pid_t pid, bool check_exit_cod return -EPROTO; } +void sigkill_wait(pid_t *pid) { + if (!pid) + return; + if (*pid <= 1) + return; + + if (kill(*pid, SIGKILL) > 0) + (void) wait_for_terminate(*pid, NULL); +} + int kill_and_sigcont(pid_t pid, int sig) { int r; diff --git a/src/basic/process-util.h b/src/basic/process-util.h index 07431d0..2c0d1af 100644 --- a/src/basic/process-util.h +++ b/src/basic/process-util.h @@ -55,6 +55,9 @@ int get_process_environ(pid_t pid, char **environ); int wait_for_terminate(pid_t pid, siginfo_t *status); int wait_for_terminate_and_warn(const char *name, pid_t pid, bool check_exit_code); +void sigkill_wait(pid_t *pid); +#define _cleanup_sigkill_wait_ _cleanup_(sigkill_wait) + int kill_and_sigcont(pid_t pid, int sig); pid_t get_parent_of_pid(pid_t pid, pid_t *ppid); void rename_process(const char name[8]); diff --git a/src/basic/util.c b/src/basic/util.c index 2129d46..d5227aa 100644 --- a/src/basic/util.c +++ b/src/basic/util.c @@ -4016,16 +4016,6 @@ int read_attr_path(const char *p, unsigned *ret) { return read_attr_fd(fd, ret); } -void sigkill_wait(pid_t *pid) { - if (!pid) - return; - if (*pid <= 1) - return; - - if (kill(*pid, SIGKILL) > 0) - (void) wait_for_terminate(*pid, NULL); -} - int syslog_parse_priority(const char **p, int *priority, bool with_facility) { int a = 0, b = 0, c = 0; int k; diff --git a/src/basic/util.h b/src/basic/util.h index 55b428f..f320337 100644 --- a/src/basic/util.h +++ b/src/basic/util.h @@ -92,7 +92,6 @@ int parse_size(const char *t, uint64_t base, uint64_t *size); int parse_boolean(const char *v) _pure_; int parse_pid(const char *s, pid_t* ret_pid); - int safe_atou(const char *s, unsigned *ret_u); int safe_atoi(const char *s, int *ret_i); @@ -677,9 +676,6 @@ int read_attr_path(const char *p, unsigned *ret); #define RLIMIT_MAKE_CONST(lim) ((struct rlimit) { lim, lim }) -void sigkill_wait(pid_t *pid); -#define _cleanup_sigkill_wait_ _cleanup_(sigkill_wait) - int syslog_parse_priority(const char **p, int *priority, bool with_facility); int rename_noreplace(int olddirfd, const char *oldpath, int newdirfd, const char *newpath); -- 2.7.4