如果你的进程被kill,并且最后一行日志是:
Killed
你需要先增加虚拟内存!
这不是本篇文章的重点,如果你增加了虚拟内存后仍然被kill,这就是本篇文章要说的。
内核有个机制叫oom,具体你可以参考搜索引擎,它是你的进程被kill的原因,但是你可以设置你的进程不被kill
echo -17 > /proc/$(pgrep name)/oom_adj
pgrep scan4all
是通过程序名获取PID的命令(请注意,如果你的程序有多个进程,会返回多个,那样就不能嵌入到的那行命令中)
你需要在你的程序运行时获取程序所有进程的PID,并执行类似的命令
然后oom就不会kill掉你的程序了
亲测有效!
如果不设置,貌似oom会kill掉短时间内占用大量内存的程序,无论虚拟内存是否充足,但这只是猜测