服务上的Android init.rc触发器已退出

服务上的Android init.rc触发器已退出,android,android-ndk,android-source,init,boot,Android,Android Ndk,Android Source,Init,Boot,我能够在Android中通过init脚本(init.rc)启动自己的服务,遵循:中的指南或官方文档 有一个名为“on service exit”的触发器,其中name是在执行该触发器的操作之前必须退出的服务的名称。 然而,这个触发器似乎不起作用。我启动了一个小的shell脚本作为一个服务,并相应地创建了触发器,以便随后启动所有剩余的服务。在执行脚本之后,init进程似乎被卡住了,无法继续处理剩余的服务 最终的目标是实现一个受控或“分阶段”的引导过程,在这个过程中,我可以确保首先执行这个脚本,然后

我能够在Android中通过init脚本(init.rc)启动自己的服务,遵循:中的指南或官方文档

有一个名为“on service exit”的触发器,其中name是在执行该触发器的操作之前必须退出的服务的名称。 然而,这个触发器似乎不起作用。我启动了一个小的shell脚本作为一个服务,并相应地创建了触发器,以便随后启动所有剩余的服务。在执行脚本之后,init进程似乎被卡住了,无法继续处理剩余的服务

最终的目标是实现一个受控或“分阶段”的引导过程,在这个过程中,我可以确保首先执行这个脚本,然后启动重新制作服务。我还试图通过使用不同的服务类来实现这一点,但失败了


感谢您在这方面提供的任何帮助。

从源代码(
system/core/init/init.c
)来看,此选项已记录在案,但未实现。

从源代码(
system/core/init/init.c
)来看,此选项已记录在案,但未实现。

阅读源代码时,我发现init设置了一个属性(init.svc.)以在服务退出时“停止”。这意味着您可以使用属性触发器来实现服务退出应该执行的操作:

service 2nd_svc /system/bin/2nd_svc
    oneshot
    disabled

on property:init.svc.1st_svc=stopped
    start 2nd_svc

阅读源代码时,我发现init在服务退出时将属性(init.svc.)设置为“stopped”。这意味着您可以使用属性触发器来实现服务退出的功能:

service 2nd_svc /system/bin/2nd_svc
    oneshot
    disabled

on property:init.svc.1st_svc=stopped
    start 2nd_svc

你能简单地指定一点点吗?为什么他们在没有支持的情况下记录?你能简单地指定一点点吗?为什么他们在没有支持的情况下记录?