为什么我的程序会被Linux自动KILL掉?
是不是促发了oom。Linux 下有个特性叫作 OOM killer(Out of Memory),从字面的意思可以看出和内存溢出相关,当内存耗尽时,该问题就会出现。
在Linux2.6.内核中,当该功能打开后,在内存耗尽时,会根据一定的值计算出一个合适的用户空间的进程给kill掉,以便释放更多的内存,保证整个系统的稳定运行。
为什么linux里的信号发送函数叫kill呢?
父进程会比子进程提早结束,在你子进程取ppid这个时间父进程已经结束了,这个时候相当于子进程变成zombie,会被init收养(这个地方我也不太懂,正常来说应该子进程的ppid是1,说明你的子进程被init之外的进程收养了)阻塞父进程或者while1的作用是不让父进程结束,以便子进程取值的时候父进程依然保留
linux中用kill函数给init进程发送一个终止信号会产生什么后果?
init进程是特殊进程,它不接收也不处理信号。你发送终止信号给它是不会有任何结果的。 下面是2.4.0内核源代码中do_signal()函数前面的一段注释:/* * Note that 'init' is a special process: it doesn't get signals it doesn't * want to handle. Thus you cannot kill init even with a SIGKILL even by * mistake. */