mirror of
https://github.com/systemd/systemd.git
synced 2024-11-05 15:21:37 +03:00
service: verify PID is valid when reading it from PID file
This commit is contained in:
parent
70123e68a0
commit
b8c597d5d2
@ -839,7 +839,13 @@ static int service_load_pid_file(Service *s) {
|
||||
if ((unsigned long) (pid_t) p != p)
|
||||
return -ERANGE;
|
||||
|
||||
s->main_pid = p;
|
||||
if (kill((pid_t) p, 0) < 0 && errno != EPERM) {
|
||||
log_warning("PID %llu read from file %s does not exist. Your service or init script might be broken.",
|
||||
(unsigned long long) p, s->pid_file);
|
||||
return -ESRCH;
|
||||
}
|
||||
|
||||
s->main_pid = (pid_t) p;
|
||||
s->main_pid_known = true;
|
||||
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user