mirror of
https://github.com/AuxXxilium/eudev.git
synced 2024-12-22 23:36:40 +07:00
main: set PR_SET_CHILD_REAPER for MANAGER_USER
Become the reaper for all children part of the user session. Tested with several forking services.
This commit is contained in:
parent
578ac0604e
commit
d4447f4d95
@ -1500,6 +1500,15 @@ int main(int argc, char *argv[]) {
|
||||
}
|
||||
}
|
||||
|
||||
if (arg_running_as == MANAGER_USER) {
|
||||
/* Become reaper of our children */
|
||||
r = prctl(PR_SET_CHILD_SUBREAPER, 1);
|
||||
if (r < 0)
|
||||
log_error("Failed to prctl(PR_SET_CHILD_SUBREAPER): %s", strerror(-r));
|
||||
if (r == -EINVAL)
|
||||
log_error("Perhaps the kernel version is too old (< 3.4?)");
|
||||
}
|
||||
|
||||
r = manager_new(arg_running_as, &m);
|
||||
if (r < 0) {
|
||||
log_error("Failed to allocate manager object: %s", strerror(-r));
|
||||
|
@ -190,3 +190,7 @@ static inline pid_t gettid(void) {
|
||||
#ifndef PR_SET_NO_NEW_PRIVS
|
||||
#define PR_SET_NO_NEW_PRIVS 38
|
||||
#endif
|
||||
|
||||
#ifndef PR_SET_CHILD_SUBREAPER
|
||||
#define PR_SET_CHILD_SUBREAPER 36
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user