📄 bring_up.html
字号:
on <trigger> <command> <command> <command></pre><p>Services</p><p>Services are programs that init launches and (optionally) restartswhen they exit. </p><p>Services take the form of:</p><pre class="prettify"> service <name> <pathname> [ <argument> ]* <option> <option> ...</pre><p>Options</p> <p> Options are modifiers to services that affect how and when initruns a service. Options are described in the table below:</p><table> <tr> <th scope="col">Option</th><th scope="col">Description</th></tr> <tr> <td><code>disabled</code></td> <td>This service will not automatically start with its class. It must be explicitly started by name.</td> </tr> <tr> <td><code>socket <type> <name> <perm> [ <user> [ <group> ] ]</code></td> <td> Create a unix domain socket named <code>/dev/socket/<name></code> and pass its fd to the launched process. Valid <code><type></code> values include <code>dgram</code> and <code>stream</code>. <code>user</code> and <code>group</code> default to 0.</td> </tr> <tr> <td><code>user <username></code></td> <td>Change to username before exec'ing this service. Currently defaults to root.</td> </tr> <tr> <td><code>group <groupname> [ <groupname> ]*</code></td> <td> Change to groupname before exec'ing this service. Additional groupnames beyond the first, which is required, are used to set additional groups of the process (with <code>setgroups()</code>). Currently defaults to root.</td> </tr> <tr> <td><code>capability [ <capability> ]+</code></td> <td>Set linux capability before exec'ing this service</td> </tr> <tr> <td><code>oneshot</code></td> <td>Do not restart the service when it exits.</td> </tr> <tr> <td><code>class <name></code></td> <td>Specify a class name for the service. All services in a named class must start and stop together. A service is considered of class "default" if one is not specified via the class option.</td> </tr></table> <p> Triggers</p> <p>Triggers are strings used to match certain kinds of events that cause an action to occur. </p> <table> <tr> <th scope="col">Trigger</th> <th scope="col">Description</th> </tr> <tr> <td><code>boot</code></td> <td>This is the first trigger that occurs when init starts (after <code>/init.conf</code> is loaded).</td> </tr> <tr> <td><code><name>=<value></code></td> <td>Triggers of this form occur when the property <code><name></code> is set to the specific value <code><value></code>.</td> </tr> <tr> <td><code>device-added-<path><br /> device-removed-<path></code></td> <td>Triggers of these forms occur when a device node is added or removed.</td> </tr> <tr> <td><code> service-exited-<name></code></td> <td>Triggers of this form occur when the specified service exits.</td> </tr> </table> <p><br /> Commands</p> <table> <tr> <th scope="col">Command</th> <th scope="col">Description</th> </tr> <tr> <td><code>exec <path> [ <argument> ]*</code></td> <td>Fork and execute a program (<code><path></code>). This will block until the program completes execution. Try to avoid exec. Unlike the <code>builtin</code> commands, it runs the risk of getting init "stuck".</td> </tr> <tr> <td><code>export <name> <value></code></td> <td>Set the environment variable <code><name></code> equal to <code><value></code> in the global environment (which will be inherited by all processes started after this command is executed).</td> </tr> <tr> <td><code>ifup <interface></code></td> <td>Bring the network interface <code><interface></code> online.</td> </tr> <tr> <td><code>import <filename></code></td> <td> Parse an init config file, extending the current configuration.</td> </tr> <tr> <td><code>hostname <name></code></td> <td>Set the host name.</td> </tr> <tr> <td><code>class_start <serviceclass></code></td> <td>Start all services of the specified class if they are not already running.</td> </tr> <tr> <td><code>class_stop <serviceclass></code></td> <td>Stop all services of the specified class if they are currently running.</td> </tr> <tr> <td><code>domainname <name></code></td> <td>Set the domain name.</td> </tr> <tr> <td><code>insmod <path></code></td> <td>Install the module at <code><path></code>.</td> </tr> <tr> <td><code>mkdir <path></code></td> <td>Make a directory at <code><path></code>.</td> </tr> <tr> <td><code>mount <type> <device> <dir> [ <mountoption> ]*</code></td> <td>Attempt to mount the named device at the directory <code><dir></code> <code><device></code>. This may be of the form mtd@name to specify a mtd block device by name.</td> </tr> <tr> <td><code>setkey</code></td> <td>- currenlty undefined - </td> </tr> <tr> <td><code>setprop <name> <value></code></td> <td>Set system property <code><name></code> to <code><value></code>.</td> </tr> <tr> <td><code> setrlimit <resource> <cur> <max></code></td> <td>Set the rlimit for a resource.</td> </tr> <tr> <td><code>start <service></code></td> <td>Start a service running if it is not already running.</td> </tr> <tr> <td><code> stop <service></code></td> <td>Stop a service from running if it is currently running.</td> </tr> <tr> <td><code>symlink <target> <path></code></td> <td>Create a symbolic link at <code><path></code> with the value <code><target></code>.</td> </tr> <tr> <td><code>write <path> <string> [ <string> ]*</code></td> <td>Open the file at <code><path></code> and write one or more strings to it with write(2).</td> </tr> </table> <p> Properties</p> Init updates some system properties to provide some insight into<br /> what it's doing:</p> <table> <tr> <th scope="col">Property</th> <th scope="col">Description</th> </tr> <tr> <td><code>init.action</code></td> <td>Equal to the name of the action currently being executed or "" if none.</td> </tr> <tr> <td><code>init.command</code></td> <td>Equal to the command being executed or "" if none.</td> </tr> <tr> <td><code>init.svc.<name></code></td> <td>State of a named service ("stopped", "running", or "restarting").</td> </tr> </table> <p>Example init.conf</p> <p>The following snippet is an incomplete example of the <code>init.conf</code> file, simply meant to give you an idea of what a proper configuration resembles.</p> <pre class="prettify">on boot export PATH /sbin:/system/sbin:/system/bin export LD_LIBRARY_PATH /system/lib mkdir /dev mkdir /proc mkdir /sys mount tmpfs tmpfs /dev mkdir /dev/pts mkdir /dev/socket mount devpts devpts /dev/pts mount proc proc /proc mount sysfs sysfs /sys write /proc/cpu/alignment 4 ifup lo hostname localhost domainname localhost mount yaffs2 mtd@system /system mount yaffs2 mtd@userdata /data import /system/etc/init.conf class_start defaultservice adbd /sbin/adbd user adb group adbservice usbd /system/bin/usbd -r user usbd group usbd socket usbd 666service zygote /system/bin/app_process -Xzygote /system/bin --zygote socket zygote 666service runtime /system/bin/runtime user system group systemon device-added-/dev/compass start akmdon device-removed-/dev/compass stop akmdservice akmd /sbin/akmd disabled user akmd group akmd</pre><p><span class="lh2"><a name="androidFooter"></a></span> </div> </div> <!-- end gc-pagecontent --> </div> <!-- end gooey wrapper --> </div> <!-- end codesearchresults --> <div id="gc-footer" dir="ltr"> <div class="text"> ©2008 Google<!-- - <a href="/">Code Home</a> - <a href="http://www.google.com/accounts/TOS">Site Terms of Service</a> - <a href="http://www.google.com/privacy.html">Privacy Policy</a> - <a href="/more">Site Directory</a> --></div> </div> <!-- end gc-footer --></div><!-- end gc-containter --><script src="http://www.google-analytics.com/ga.js" type="text/javascript"></script><script type="text/javascript"> try { var pageTracker = _gat._getTracker("UA-18071-1"); pageTracker._setAllowAnchor(true); pageTracker._initData(); pageTracker._trackPageview(); } catch(e) {}</script><div id="jd-build-id"> v0.6 - 25 November 2008</div></div></div></div></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -