init.rc分析

來源:互聯網
上載者:User

本文轉自: 
http://www.cnblogs.com/perseus/archive/2012/03/19/2405503.html

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>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.