mirror of
https://github.com/topjohnwu/Magisk.git
synced 2024-12-24 20:17:40 +00:00
Make sure magisk daemon won't get killed by init
According to this comment in #1880: https://github.com/topjohnwu/Magisk/issues/1880#issuecomment-546657588 If Linux recycled our PPID, and coincidentally the process that reused the PPID is root, AND init wants to kill the whole process group, magiskd will get killed as a result. There is no real way to block a SIGKILL signal, so we simply make sure our daemon PID is the process group leader by renaming the directory. Close #1880
This commit is contained in:
parent
31e003bda5
commit
e7155837d7
@ -210,9 +210,17 @@ int connect_daemon(bool create) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
int ppid = getpid();
|
||||
LOGD("client: launching new main daemon process\n");
|
||||
if (fork_dont_care() == 0) {
|
||||
close(fd);
|
||||
|
||||
// Make sure ppid is not in acct
|
||||
char src[64], dest[64];
|
||||
sprintf(src, "/acct/uid_0/pid_%d", ppid);
|
||||
sprintf(dest, "/acct/uid_0/pid_%d", getpid());
|
||||
rename(src, dest);
|
||||
|
||||
main_daemon();
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user