2011-02-25 116 views
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的Android init.rc觸發服務退出

找到的官方文檔

有一個叫做「on service-exit-< name>」的觸發器,其中名稱是在執行該觸發器的動作之前必須退出的服務的名稱。 但是,這個觸發似乎不起作用。我開始了一個小shell腳本作爲服務,並相應地創建了觸發器,以便在之後啓動所有剩餘的服務。初始化過程似乎在我的腳本執行後停滯不前,並且不會繼續執行其餘的服務。

最終目標是實現類似受控或'stage'啓動過程,我可以確保先執行該腳本,然後啓動restnig服務。我也嘗試使用不同的服務類別來完成這項工作,但是失敗了

對這個問題的任何幫助表示讚賞。

回答

1

從源代碼(system/core/init/init.c)判斷此選項已記錄但未實現。

+0

能否請您簡要說明一下呢?爲什麼他們記錄什麼時候沒有支持? – AQU 2015-09-01 05:40:05

5

讀取源代碼我發現init在服務退出時將一個屬性(init.svc。<名稱>)設置爲「stopped」。這意味着你可以使用屬性觸發器來實現什麼樣的服務-×[出口<名>是應該做的:

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

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