service-exited上的Android init.rc触发器

时间:2011-02-25 11:20:38

标签: android android-ndk android-source init boot

我可以从Android中的init脚本(init.rc)启动我自己的服务,遵循以下指南:http://www.androidenea.com/2009/08/init-process-and-initrc.htmlhttps://android.googlesource.com/platform/system/core/+/froyo-release/init/readme.txt上的官方文档

有一个名为“on service-exit-< name >”的触发器其中 name 是在执行此触发器的操作之前必须退出的服务的名称。 但是,此触发器似乎不起作用。我启动了一个小的shell脚本作为服务,并相应地创建了触发器,以便之后启动所有剩余的服务。执行我的脚本后,init进程似乎停滞不前,并且没有继续使用剩余的服务。

最终目标是实现类似于受控或“暂存”启动过程,我可以确保首先执行此脚本,然后启动remainingnig服务。我也试图通过使用不同的服务类来实现这一目标,但失败了

对此主题的任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:6)

阅读消息来源我发现当服务退出时,init将属性(init.svc。< name>)设置为“已停止”。这意味着您可以使用属性触发器来实现service-exit-< name>应该这样做:

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

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

答案 1 :(得分:1)

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