我想要编译“SLOCK”实施一些调整。 它无法启动,在此:
#ifdef __linux__
#include <fcntl.h>
static void
dontkillme(void) {
int fd;
fd = open("/proc/self/oom_score_adj", O_WRONLY);
if (fd < 0 && errno == ENOENT)
return;
if (fd < 0 || write(fd, "-1000\n", 6) != 6 || close(fd) != 0)
die("cannot disable the out-of-memory killer for this process\n");
}
#endif
我继续做了一些调试,并发现我得到EACCESS从write()
有什么收获? 我相信这是一些安全功能,因为它的不冷静如果进程可以修改这个值 - 但是我究竟做错了什么? 是否有二进制一些特殊的文件系统标志设置,让这项工作?