在启动时从Android上的init.rc运行脚本作为服务

时间:2015-12-11 11:38:02

标签: android service init

为了在启动时在Android上执行脚本(Samsung Note 10.1(N8010),4.4.2),我在init.rc的末尾添加了以下内容(解包/重新打包boot.img)让它作为服务运行:

service test /system/bin/test_script.sh
    class main
    oneshot

脚本如下所示:

 #!/system/bin/sh
 mkdir /sdcard/test_directory

最终应该做其他事情,但是为了测试我保持简单。权限为0755

问题是,目录/sdcard/test_directory没有被创建,这使我相信该服务永远不会被启动,即脚本永远不会被执行。

我已经尝试过其他线程中提到的很多内容。 例如,将行user root添加到服务,重新启动多次(因为在闪烁boot.img后立即启动设备后显然没有启动服务)或将脚本放在不同的文件夹中,如{{ 1}}或/system/etc/

知道可能是什么问题吗? 有可能以某种方式监视服务是否实际启动(可能是,但问题在于脚本)? 甚至可能有更好的方法在启动时执行脚本(设备没有/data/local/tmp支持,我也不想使用像Unversal Init.d这样的应用程序?

编辑:

不知道为什么,但它现在有效。

多次移动脚本,最后将其放在/ data下并删除文件扩展名。还为脚本添加了更多行,例如init.d。虽然没有创建mkdir /data/local/tmp/test_directory下的目录(可能是权限问题?)。可能是原因,为什么我认为脚本没有被执行,如果它已经存在过。

问题是:有没有办法监控服务是否实际启动?

0 个答案:

没有答案