日韩在线免费播放-日韩在线免费av-日韩在线免费-日韩在线毛片-国产高清不卡视频-国产高清不卡

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > Android init.rc解析

Android init.rc解析 時間:2014-06-03      來源:未知

1 簡述

Android init.rc文件由系統第一個啟動的init程序解析,此文件由語句組成,主要包含了四種類型的語句:Action,Commands,Services,Options.在init.rc文件中一條語句通常是占據一行.單詞之間是通過空格符來相隔的.如果需要在單詞內使用空格,那么得使用轉義字符"\",如果在一行的末尾有一個反斜杠,那么是換行折疊符號,應該和下一行合并成一起來處理,這樣做主要是為了避免一行的字符太長,與C語言中的含義是一致的。注釋是以#號開頭。 Action和services顯式聲明了一個語句塊,而commands和options屬于近聲明的語句塊。在第一個語句塊之前的commands和options會被忽略.

2 關鍵字

token: 計算機語言中的一個單詞,就跟英文中的單詞差不多一人概念.

Section: 語句塊,相當于C語言中大括號內的一個塊。一個Section以Service或On開頭的語句塊.以Service開頭的Section叫做服務,而以On開頭的叫做動作(Action).

services: 服務.

Action: 動作

commands:命令.

options:選項.

trigger:觸發器,或者叫做觸發條件.

class: 類屬,即可以為多個service指定一個相同的類屬,方便操作同時啟動或停止.

3 語句解析

3.1 動作(Action)

動作表示了一組命令(commands)組成.動作包含一個觸發器,決定了何時執行這個動作。當觸發器的條件滿足時,這個動作會被加入到已被執行的隊列尾。如果此動作在隊列中已經存在,那么它將不會執行.

一個動作所包含的命令將被依次執行。動作的語法如下所示:

1. on <trigger> 
        2. <command> 
        3. <command> 
        4. <command>

3.2 服務(services)

服務是指那些需要在系統初始化時就啟動或退出時自動重啟的程序,它的語法結構如下所示:

1. service <name> <pathname> [ <argument> ]* 
        2. <option> 
        3. <option> 
        4. ...

3.3 選項(options)

選項是用來修改服務的。它們影響如何及何時運行這個服務。

選項

描述

critical

據設備相關的關鍵服務,如果在4分鐘內,此服務重復啟動了4次,那么設備將會重啟進入還原模式。

disabled

服務不會自動運行,必須顯式地通過服務器來啟動。

setenv<name><value>

設置環境變量

socket <name><type><perm>
[ <user> [ <group> ] ]

在/dev/socket/下創建一個unix domain的socket,并傳遞創建的文件描述符fd給服務進程.其中type必須為dgram或stream,seqpacket.用戶名和組名默認為0

user <username>

在執行此服務之前先切換用戶名。當前默認為root.

group <groupname> [ <groupname> ]*

類似于user,切換組名

oneshot

當此服務退出時不會自動重啟.

class <name>

給服務指定一個類屬,這樣方便操作多個服務同時啟動或停止.默認情況下為default.

onrestart

當服務重啟時執行一條指令,

3.4 觸發器(trigger)

觸發器用來描述一個觸發條件,當這個觸發條件滿足時可以執行動作。

觸發器

描述

boot

init程序執行,并載入/init.conf文件時觸發.

<name>=<value>

當屬性名對應的值設置為指定值時觸發.

device-added-<path>

當添加設備時觸發.

device-removed-<path>

當設備移除時觸發.

service-exited-<name>

當指定的服務退出時觸發.

3.5 命令(commands)

命令

描述

exec <path> [ <argument> ]*

執行指定路徑下的程序,并傳遞參數.

export <name><value>

設置全局環境參數,此參數被設置后對所有進程都有效.

ifup<interface>

使指定的網絡接口"上線",相當激活指定的網絡接口

import <filename>

導入一個額外的init配置文件.

hostname <name>

設置主機名

chdir<directory>

改變工作目錄.

chmod<octal-mode><path>

改變指定文件的讀取權限.

chown<owner><group><path>

改變指定文件的擁有都和組名的屬性.

chroot<directory>

改變進行的根目錄.

class_start<serviceclass>

啟動指定類屬的所有服務,如果服務已經啟動,則不再重復啟動.

class_stop<serviceclass>

停止指定類屬的所胡服務.

domainname<name>

設置域名

insmod<path>

安裝模塊到指定路徑.

mkdir<path> [mode] [owner] [group]

用指定參數創建一個目錄,在默認情況下,創建的目錄讀取權限為755.用戶名為root,組名為root.

mount <type><device><dir> [ <mountoption> ]*

類似于linux的mount指令

setkey

TBD(To Be Determined),待定.

setprop<name><value>

設置屬性及對應的值.

setrlimit<resource><cur><max>

設置資源的rlimit(資源限制),不懂就百度一下rlimit

start <service>

如果指定的服務未啟動,則啟動它.

stop <service>

如果指定的服務當前正在運行,則停止它.

symlink<target><path>

創建一個符號鏈接.

sysclktz<mins_west_of_gmt>

設置系統基準時間.

trigger <event>

Trigger an event.  Used to queue an action from another action.這名話沒有理解,望高手指點.

write <path><string> [ <string> ]*

往指定的文件寫字符串.

3.6 屬性(Properties)

init程序在運行時會更新屬性系統的一些屬性,提供程序內部正在執行的信息。

屬性名

描述

init.action

當前正在執行的動作,如果沒有則為空字符串""

init.command

當前正在執行的命令.沒有則為空字符串.

init.svc.<name>

當前某個服務的狀態,可為"stopped", "running", "restarting"


上一篇:SQL語句概念使用說明

下一篇:關于pipe的使用

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: k总直播间| 巴黎最后的探戈| 爱自由| 高野人母美| 舞蹈压腿疼哭训练视频| 一元二次不等式的例题100道| 忘忧草电影| 名字简写设计| 海神号遇险记| 超越演员表| 转正意见评语| 陈若| 火辣身材| 越活越来劲 电视剧| 港股三大指数| 台湾电影网| 火火| 变形金刚1免费完整版在线观看| 珊瑚海 歌词| 在线播放的免费电影网站| 埃尔加他狼| 韩义生| 暴走财神4| 急招55岁左右男司机| 哥哥太爱我怎么办| 谭耀文演的电影| 嫂子颂歌曲原唱| 奇奇颗颗说恐龙| 极寒之城剧情详细介绍| 女神宿舍管理君动漫| 网络流行歌曲2024最火前十名| 电影在线观看高清完整版免费| 沙漠电影高清在线播放| 女人高潮私密按摩视频| 徐若晗全部电视剧大全| 烟花女驼龙| 蛮荒的童话 电影| 男骑女| 女人的战争剧情介绍| 他其实没那么爱你电影| 小崔会客|