1

我能够从 Android 中的初始化脚本 (init.rc) 启动我自己的服务,遵循以下指南:http ://www.androidenea.com/2009/08/init-process-and-initrc.html或官方文档位于https://android.googlesource.com/platform/system/core/+/froyo-release/init/readme.txt

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

最终目标是实现类似受控或“分阶段”的引导过程,我可以确保首先执行此脚本,然后启动剩余服务。我也尝试通过使用不同的服务类来实现这一点,但失败了

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

4

2 回答 2

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
于 2011-04-21T10:40:22.370 回答
1

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

于 2011-04-20T07:38:32.040 回答