init.rc語法介紹


1、init.rc是一個可配置的初始化文件,通常定制廠商可以配置額外的初始化配置,init.%PRODUCT%.rc

2、init.rc是在$GINGERBREAD/system/core/init/init.c中讀取的,它基於“行”,包含一些用空格隔開的關鍵字(它屬於特殊字符)

3、如果關鍵字中有空格,處理方法類似於C語言,使用/表示轉義,使用“”防止關鍵字被斷開,另外注意/在末尾表示換行

4、#開頭的表示注釋

5、init.rc包含4種狀態類別:Actions/Commands/Services/Options

6、當聲明一個service或者action的時候,它將隱式聲明一個section,它之后跟隨的command或者option都將屬於這個section

7、action和service不能重名,否則忽略為error

8、actions就是在某種條件下觸發一系列的命令,通常有一個trigger,形式如:

on <trigger>
     <command>
     <command>

9、service結構如下:
service <name> <pathname> [ <argument> ]*
     <option>
     <option>

10、option是service的修飾詞,主要包括:
   critical  
   表示如果服務在4分鍾內存在多於4次,則系統重啟到recovery mode

   disabled  
   表示服務不會自動啟動,需要手動調用名字啟動

   setEnv <name> <value>  
   設置啟動環境變量

   socket <name> <type> <permission> [<user> [<group>]] 
   開啟一個unix域的socket,名字為/dev/socket/<name> , <type>只能是dgram或者stream,<user>和<group>默認為0

   user <username> 
   表示將用戶切換為<username>,用戶名已經定義好了,只能是system/root

   group <groupname> 
   表示將組切換為<groupname>

   oneshot 
   表示這個service只啟動一次

   class <name> 
   指定一個要啟動的類,這個類中如果有多個service,將會被同時啟動。默認的class將會是“default”

   onrestart 
   在重啟時執行一條命令

11、trigger主要包括:
   boot 
   當/init.conf加載完畢時

   <name>=<value> 
   當<name>被設置為<value>時

   device-added-<path> 
   設備<path>被添加時

   device-removed-<path> 
   設備<path>被移除時

   service-exited-<name> 
   服務<name>退出時

12、命令主要包括:
   exec <path> [ <argument> ]*
   執行一個<path>指定的程序

   export <name> <value>
   設置一個全局變量

   ifup <interface>
   使網絡接口<interface>連接

   import <filename>
   引入其他的配置文件

   hostname <name>
   設置主機名

   chdir <directory>
   切換工作目錄

   chmod <octal-mode> <path>
   設置訪問權限

   chown <owner> <group> <path>
   設置用戶和組
 
   chroot <directory>
   設置根目錄

   class_start <serviceclass>
   啟動類中的service

   class_stop <serviceclass>
   停止類中的service

   domainname <name>
   設置域名

   insmod <path>
   安裝模塊

   mkdir <path> [mode] [owner] [group]
   創建一個目錄,並可以指定權限,用戶和組

   mount <type> <device> <dir> [ <mountoption> ]*
   加載指定設備到目錄下
   <mountoption> 包括"ro", "rw", "remount", "noatime"

   setprop <name> <value>
   設置系統屬性

   setrlimit <resource> <cur> <max>
   設置資源訪問權限

   start <service>
   開啟服務

   stop <service>
   停止服務

   symlink <target> <path>
   創建一個動態鏈接

   sysclktz <mins_west_of_gmt>
   設置系統時鍾

   trigger <event>
   觸發事件

   write <path> <string> [ <string> ]*
   向<path>路徑的文件寫入多個<string>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM