mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-01-03 01:17:45 +03:00
udev: reset /proc/self/oom_score_adj in worker processes
Only the main daemon process should be excluded from OOM handling, not the worker processes or their child processes.
This commit is contained in:
parent
8600c525cb
commit
145dae7eb3
@ -262,6 +262,9 @@ static void worker_new(struct event *event)
|
||||
/* request TERM signal if parent exits */
|
||||
prctl(PR_SET_PDEATHSIG, SIGTERM);
|
||||
|
||||
/* reset OOM score, we only protect the main daemon */
|
||||
write_one_line_file("/proc/self/oom_score_adj", "0");
|
||||
|
||||
for (;;) {
|
||||
struct udev_event *udev_event;
|
||||
struct worker_message msg;
|
||||
@ -1230,7 +1233,6 @@ int main(int argc, char *argv[])
|
||||
|
||||
if (daemonize) {
|
||||
pid_t pid;
|
||||
int fd;
|
||||
|
||||
pid = fork();
|
||||
switch (pid) {
|
||||
@ -1247,11 +1249,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
setsid();
|
||||
|
||||
fd = open("/proc/self/oom_score_adj", O_RDWR|O_CLOEXEC);
|
||||
if (fd >= 0) {
|
||||
write(fd, "-1000", 5);
|
||||
close(fd);
|
||||
}
|
||||
write_one_line_file("/proc/self/oom_score_adj", "-1000");
|
||||
} else {
|
||||
sd_notify(1, "READY=1");
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user