如何阻止android杀死我的守护进程

如何阻止android杀死我的守护进程,android,out-of-memory,Android,Out Of Memory,我的Android“智能电视盒”附带了一个磁盘,安装了一个运行各种服务器进程(ntp、mpd、lighttpd等)的小型Debian发行版。问题是,即使我有足够的交换空间,我的一些守护进程在有大量活动时(即当机器交换多一点时)往往会“死亡”。事实上,我不知道根本原因是什么,但听起来可能是某种Android OOM系统决定最好终止这些进程(大概是因为它是在没有交换的假设下调整的) 我怎样才能证实情况确实如此 如果是这种情况,那么即使在交换空间仍然很大的情况下,我也可以阻止内核终止进程吗?您可以调整

我的Android“智能电视盒”附带了一个磁盘,安装了一个运行各种服务器进程(ntp、mpd、lighttpd等)的小型Debian发行版。问题是,即使我有足够的交换空间,我的一些守护进程在有大量活动时(即当机器交换多一点时)往往会“死亡”。事实上,我不知道根本原因是什么,但听起来可能是某种Android OOM系统决定最好终止这些进程(大概是因为它是在没有交换的假设下调整的)

我怎样才能证实情况确实如此


如果是这种情况,那么即使在交换空间仍然很大的情况下,我也可以阻止内核终止进程吗?

您可以调整内存不足杀手写入
/sys/module/lowmemorykiller/parameters
。作为一个内核杀手,我不认为它区别于android和本机进程,但我可能错了


更多详细信息请参见

Android保留随时终止任何服务的权利。它还设置了每个应用程序的内存限制,即使你还有内存,也不会让应用程序超过它。因此,您需要对服务进行编码,假设它们可以在任何时候被无故杀死。其中一个诀窍是让你的服务的onCreate call startService自行启动——出于某种原因,Android往往每8小时左右就会杀死所有东西,这就解决了这个问题(尽管如果你在做某件事情时它被杀死了,可能会丢失)。这些是真正的本机Linux守护进程“死亡”,而不是SDK应用程序?对,这些是对Android一无所知的Debian守护进程。。。我不知道Android会以这种方式终止非SDK应用程序。我在启动脚本中添加了
echo 1,2,3,4,5,6>/sys/module/lowmemorykiller/parameters/minfree
,问题解决了,谢谢。