提交 f0d0f36c 编写于 作者: C cheng_ping

纯净化init开发指南和刷新begetctl命令

Signed-off-by: Ncheng_ping <cheng_ping@hoperun.com>
上级 cd6da2b6
......@@ -32,876 +32,75 @@ job就是命令集合,jobs管理就是对要执行的一组命令集合进行
### 参数说明
**表1** 命令集说明
<table border="0" cellpadding="0" cellspacing="0" width="770" style="border-collapse: collapse;table-layout:fixed;width:578pt;border-spacing: 0px;font-variant-ligatures: normal; font-variant-caps: normal;orphans: 2;text-align:start;widows: 2;-webkit-text-stroke-width: 0px; text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial">
<tbody>
<tr height="39" style="height:18.0pt">
<th height="24" class="xl6521952" width="140" style="height:18.0pt;width:105pt">
命令
</td>
<th class="xl6521952" width="215" style="border-left:none;width:161pt">
命令格式和示例
</td>
<th class="xl6521952" width="225" style="border-left:none;width:169pt">
说明
</td>
<th class="xl6521952" width="190" style="border-left:none;width:143pt">
支持系统类型
</td>
</tr>
<tr height="231" style="height:173.25pt">
<td height="231" class="xl6621952" width="140" style="height:173.25pt;border-top: none;width:105pt">
mkdir
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
mkdir&nbsp;目标文件夹 [mode] [owner] [group]<br>如:mkdir&nbsp;/storage/myDirectory<br>mkdir /storage/myDirectory 0755 root root
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
创建文件夹命令,mkdir和目标文件夹之间有且只能有一个空格。不支持文件夹递归创建。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
小型系统和标准系统
</td>
</tr>
<tr height="277" style="mso-height-source:userset;height:207.75pt">
<td height="277" class="xl6621952" width="140" style="height:207.75pt;border-top: none;width:105pt">
chmod
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
chmod&nbsp;权限&nbsp;目标<br>如:chmod&nbsp;0600&nbsp;/storage/myFile.txt<br>chmod&nbsp;0750&nbsp;/storage/myDir
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
修改权限命令,chmod权限目标之间间隔有且仅有一个空格,权限必须为0xxx格式。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
小型系统和标准系统
</td>
</tr>
<tr height="295" style="mso-height-source:userset;height:221.25pt">
<td height="295" class="xl6621952" width="140" style="height:221.25pt;border-top: none;width:105pt">
chown
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
chown&nbsp;uid&nbsp;gid&nbsp;目标<br>如:chown&nbsp;900&nbsp;800&nbsp;/storage/myDir<br>chown&nbsp;100&nbsp;100&nbsp;/storage/myFile.txt
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
修改属组命令,chown&nbsp;uid&nbsp;gid目标之间间隔有且仅有一个空格。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
小型系统和标准系统
</td>
</tr>
<tr height="355" style="mso-height-source:userset;height:266.25pt">
<td height="355" class="xl6621952" width="140" style="height:266.25pt;border-top: none;width:105pt">
mount
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
mount&nbsp;fileSystemType&nbsp;src&nbsp;dst&nbsp;flags&nbsp;data<br>如:mount&nbsp;vfat&nbsp;/dev/mmcblk0&nbsp;/sdc&nbsp;rw,umask=000<br>mount&nbsp;jffs2&nbsp;/dev/mtdblock3&nbsp;/storage&nbsp;nosuid
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
挂载命令,各参数之间有且仅有一个空格。<br>flags参考base/startup/init_lite/services/init/init_common_cmds.c中mountFlagMap函数mountFlagMap[]数组,data为可选字段。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
小型系统和标准系统
</td>
</tr>
<tr height="238" style="mso-height-source:userset;height:178.5pt">
<td height="238" class="xl6621952" width="140" style="height:178.5pt;border-top: none;width:105pt">
start
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
start&nbsp;serviceName<br>如:start&nbsp;foundationstart
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
启动服务命令,start后面跟着service名称,该service名称必须能够在services数组中找到。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
小型系统和标准系统
</td>
</tr>
<tr height="264" style="mso-height-source:userset;height:198.0pt">
<td height="264" class="xl6621952" width="140" style="height:198.0pt;border-top: none;width:105pt">
export
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
export key value<br>如:export TEST /data/test
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
设置环境变量命令。后面跟两个参数,第一个参数是环境变量名,第二个参数是环境变量值。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
小型系统和标准系统
</td>
</tr>
<tr height="185" style="height:138.75pt">
<td height="185" class="xl6621952" width="140" style="height:138.75pt;border-top: none;width:105pt">
rm
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
rm filename<br>如:rm /data/testfile
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
删除文件命令。后面跟一个参数,即文件的绝对路径。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
小型系统和标准系统
</td>
</tr>
<tr height="185" style="height:138.75pt">
<td height="185" class="xl6621952" width="140" style="height:138.75pt;border-top: none;width:105pt">
rmdir
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
rmdir dirname<br>如:rmdir /data/testdir
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
删除目录命令。后面跟一个参数,即目录的绝对路径。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
小型系统和标准系统
</td>
</tr>
<tr height="162" style="height:121.5pt">
<td height="162" class="xl6621952" width="140" style="height:121.5pt;border-top: none;width:105pt">
write
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
write filename value<br>如:write /data/testfile 0
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
写文件命令。后面跟两个参数,第一个参数是文件的绝对路径,第二个参数是要写入文件的字符串。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
标准系统
</td>
</tr>
<tr height="185" style="height:138.75pt">
<td height="185" class="xl6621952" width="140" style="height:138.75pt;border-top: none;width:105pt">
stop
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
stop servicename<br>如:stop console
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
停止服务命令。后面跟一个参数,即要关停止的服务名。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
小型系统和标准系统
</td>
</tr>
<tr height="280" style="mso-height-source:userset;height:210.0pt">
<td height="280" class="xl6621952" width="140" style="height:210.0pt;border-top: none;width:105pt">
copy
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
copy oldfile newfile<br>如:copy /data/old /data/new
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
拷贝文件命令。后面跟两个参数,第一个参数是原文件绝对路径,第二个参数是新文件绝对路径。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
小型系统和标准系统
</td>
</tr>
<tr height="382" style="mso-height-source:userset;height:286.5pt">
<td height="382" class="xl6621952" width="140" style="height:286.5pt;border-top: none;width:105pt">
reset
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
reset servicename<br>如:reset console
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
重置服务命令。后面跟一个参数,即要重启的服务名。目前reset命令的策略是,如果一个服务没有启动,则该命令会将其拉起,如果一个服务处于运行状态,则该命令会将其关闭后重启。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
小型系统和标准系统
</td>
</tr>
<tr height="363" style="mso-height-source:userset;height:272.25pt">
<td height="363" class="xl6621952" width="140" style="height:272.25pt;border-top: none;width:105pt">
reboot
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
reboot (subsystem)<br>如:reboot updater
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
重启系统命令。后面可以跟一个参数,也可以没有参数,当没有参数时执行该命令,将会使设备重启到当前系统,当后面跟参数时,参数应当是子系统的名字,例如,reboot updater,将会重启进入updater子系统。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
小型系统和标准系统
</td>
</tr>
<tr height="185" style="height:138.75pt">
<td height="185" class="xl6621952" width="140" style="height:138.75pt;border-top: none;width:105pt">
sleep
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
sleep time<br>如:sleep 5
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
睡眠命令。后面可以跟一个参数,该参数是睡眠时间。<br>sleep命令谨慎使用。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
小型系统和标准系统
</td>
</tr>
<tr height="185" style="height:138.75pt">
<td height="185" class="xl6621952" width="140" style="height:138.75pt;border-top: none;width:105pt">
domainname
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
domainname name<br>如:domainname localdomain
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
设置域名。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
小型系统和标准系统
</td>
</tr>
<tr height="185" style="height:138.75pt">
<td height="185" class="xl6621952" width="140" style="height:138.75pt;border-top: none;width:105pt">
hostname
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
hostname name<br>如:hostname localhost
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
设置主机名命令。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
小型系统和标准系统
</td>
</tr>
<tr height="116" style="height:87.0pt">
<td height="116" class="xl6621952" width="140" style="height:87.0pt;border-top: none;width:105pt">
wait
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
wait filepath<br>如:wait /data/testfile 或 wait /data/testfile 5
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
等待命令,等待时间不超过5秒。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
小型系统和标准系统
</td>
</tr>
<tr height="185" style="height:138.75pt">
<td height="185" class="xl6621952" width="140" style="height:138.75pt;border-top: none;width:105pt">
setrlimit
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
setrlimit resource curValue maxValue<br>如:setrlimit RLIMIT_CPU 10 100
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
设定资源使用限制命令。<br>resource参考base/startup/init_lite/services/init/init_common_cmds.c中DoSetrlimit函数resource[]。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
小型系统和标准系统
</td>
</tr>
<tr height="228" style="mso-height-source:userset;height:171.0pt">
<td height="228" class="xl6621952" width="140" style="height:171.0pt;border-top: none;width:105pt">
exec
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
exec 可执行文件路径 可执行文件传的参数<br>如:exec /system/bin/udevadm trigger
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
执行命令,参数个数不超过10个。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
小型系统和标准系统
</td>
</tr>
<tr height="162" style="height:121.5pt">
<td height="162" class="xl6621952" width="140" style="height:121.5pt;border-top: none;width:105pt">
syncexec
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
syncexec 可执行文件路径 可执行文件传的参数 <br>如:syncexec /system/bin/udevadm trigger
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
同步执行,syncexec 会调用wait等待子进程结束。参数个数不超过10个。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
标准系统
</td>
</tr>
<tr height="231" style="height:173.25pt">
<td height="231" class="xl6621952" width="140" style="height:173.25pt;border-top: none;width:105pt">
mknode
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
mknod name { b | c } Major Minor<br>如:mknod path b 0644 1 9
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
建立一个目录项和一个特殊文件的对应索引节点。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
标准系统
</td>
</tr>
<tr height="185" style="height:138.75pt">
<td height="185" class="xl6621952" width="140" style="height:138.75pt;border-top: none;width:105pt">
makedev
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
makedev major minor<br>如:makedev -v update
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
创建静态的设备节点命令,通常位于/dev目录下。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
标准系统
</td>
</tr>
<tr height="231" style="height:173.25pt">
<td height="231" class="xl6621952" width="140" style="height:173.25pt;border-top: none;width:105pt">
symlink
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
symlink target link_name<br>如:symlink /proc/self/fd/0 /dev/stdin
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
符号链接命令。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
标准系统
</td>
</tr>
<tr height="139" style="height:104.25pt">
<td height="139" class="xl6621952" width="140" style="height:104.25pt;border-top: none;width:105pt">
trigger
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
trigger jobName<br>如:trigger early-fs
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
触发job执行的命令。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
标准系统
</td>
</tr>
<tr height="116" style="height:87.0pt">
<td height="116" class="xl6621952" width="140" style="height:87.0pt;border-top: none;width:105pt">
insmod
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
insmod <ko name> [-f] [options]<br>如:insmod xxx.ko
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
内核模块文件载入命令。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
标准系统
</td>
</tr>
<tr height="277" style="height:207.75pt">
<td height="277" class="xl6621952" width="140" style="height:207.75pt;border-top: none;width:105pt">
setparam
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
setparam paramname paramvalue<br>如:setparam sys.usb.config hdc
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
设置系统参数。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
标准系统
</td>
</tr>
<tr height="231" style="height:173.25pt">
<td height="231" class="xl6621952" width="140" style="height:173.25pt;border-top: none;width:105pt">
load_persist_params
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
load persist params<br>如:load_persist_params&nbsp;
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
加载persist参数。load_persist_params命令后有且仅有一个空格。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
标准系统
</td>
</tr>
<tr height="208" style="height:156.0pt">
<td height="208" class="xl6621952" width="140" style="height:156.0pt;border-top: none;width:105pt">
load_param
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
load params<br>如:load_param /data/test.normal.para
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
将文件里的param加载到内存。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
标准系统
</td>
</tr>
<tr height="278" style="mso-height-source:userset;height:208.5pt">
<td height="278" class="xl6621952" width="140" style="height:208.5pt;border-top: none;width:105pt">
load_access_token_id
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
如:load_access_token_id&nbsp;
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
将access token信息写入data/service/el0/access_token/nativetoken.json文件,load_access_token_id后有且只有一个空格。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
标准系统
</td>
</tr>
<tr height="139" style="height:104.25pt">
<td height="139" class="xl6621952" width="140" style="height:104.25pt;border-top: none;width:105pt">
ifup
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
ifup 激活网络接口<br>如:ifup eth0
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
激活指定的网络接口。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
标准系统
</td>
</tr>
<tr height="208" style="height:156.0pt">
<td height="208" class="xl6621952" width="140" style="height:156.0pt;border-top: none;width:105pt">
mount_fstab
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
mount_fstab fstab.test<br>如:mount_fstab /vendor/etc/fstab.test
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
按照fstab挂载分区的命令。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
标准系统
</td>
</tr>
<tr height="208" style="height:156.0pt">
<td height="208" class="xl6621952" width="140" style="height:156.0pt;border-top: none;width:105pt">
umount_fstab
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
umount_fstab fstab.test<br>如:umount_fstab /vendor/etc/fstab.test
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
按照fstab卸载分区的命令。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
标准系统
</td>
</tr>
<tr height="162" style="height:121.5pt">
<td height="162" class="xl6621952" width="140" style="height:121.5pt;border-top: none;width:105pt">
restorecon
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
restorecon file or dir<br>如:restorecon /file
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
重新加载selinux 的context。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
标准系统
</td>
</tr>
<tr height="254" style="height:190.5pt">
<td height="254" class="xl6621952" width="140" style="height:190.5pt;border-top: none;width:105pt">
stopAllServices
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
stopAllServices [bool]<br>如:stopAllServices false 或 stopAllServices
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
停止所有服务, 默认10毫秒。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
标准系统
</td>
</tr>
<tr height="162" style="height:121.5pt">
<td height="162" class="xl6621952" width="140" style="height:121.5pt;border-top: none;width:105pt">
umount
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
umount path<br>如:umount /vendor
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
卸载已经挂载的硬件设备 。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
标准系统
</td>
</tr>
<tr height="185" style="height:138.75pt">
<td height="185" class="xl6621952" width="140" style="height:138.75pt;border-top: none;width:105pt">
sync
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
如:sync&nbsp;
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
同步写入数据到磁盘。sync后有且仅有一个空格。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
标准系统
</td>
</tr>
<tr height="185" style="height:138.75pt">
<td height="185" class="xl6621952" width="140" style="height:138.75pt;border-top: none;width:105pt">
timer_start
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
timer_start serviceName<br>如:timer_start console
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
启动服务计时器。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
标准系统
</td>
</tr>
<tr height="185" style="height:138.75pt">
<td height="185" class="xl6621952" width="140" style="height:138.75pt;border-top: none;width:105pt">
timer_stop
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
timer_stop serviceName<br>如:timer_stop console
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
停止服务计时器。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
标准系统
</td>
</tr>
<tr height="162" style="height:121.5pt">
<td height="162" class="xl6621952" width="140" style="height:121.5pt;border-top: none;width:105pt">
init_global_key
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
init_global_key path <br>如:init_global_key /data
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
data分区文件加密key初始化。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
标准系统
</td>
</tr>
<tr height="70" style="height:52.5pt">
<td height="70" class="xl6621952" width="140" style="height:52.5pt;border-top:none; width:105pt">
init_main_user
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
如:init_main_user
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
主用户目录加密。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
标准系统
</td>
</tr>
<tr height="162" style="height:121.5pt">
<td height="162" class="xl6621952" width="140" style="height:121.5pt;border-top: none;width:105pt">
mkswap
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
mkswap file<br>如:mkswap /swapfile1
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
在一个文件或者设备上建立交换分区。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
标准系统
</td>
</tr>
<tr height="162" style="height:121.5pt">
<td height="162" class="xl6621952" width="140" style="height:121.5pt;border-top: none;width:105pt">
swapon
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
swapon file <br>如:swapon /swapfile1
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
激活交换空间。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
标准系统
</td>
</tr>
<tr height="162" style="height:121.5pt">
<td height="162" class="xl6621952" width="140" style="height:121.5pt;border-top: none;width:105pt">
mksandbox
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
mksandbox fileName <br>如:mksandbox system
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
创建沙盒。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
标准系统
</td>
</tr>
<tr height="384" style="mso-height-source:userset;height:288.0pt">
<td height="384" class="xl6621952" width="140" style="height:288.0pt;border-top: none;width:105pt">
loadcfg
</td>
<td class="xl6621952" width="215" style="border-top:none;border-left:none; width:161pt">
loadcfg&nbsp;filePath<br>如:loadcfg&nbsp;/patch/fstab.cfg
</td>
<td class="xl6621952" width="225" style="border-top:none;border-left:none; width:169pt">
加载其他cfg文件命令。后面跟着的目标文件大小不得超过50KB,且目前仅支持加载/patch/fstab.cfg,其他文件路径和文件名均不支持。/patch/fstab.cfg文件的每一行都是一条命令,命令类型和格式必须符合本表格描述,命令条数不得超过20条。
</td>
<td class="xl6621952" width="190" style="border-top:none;border-left:none; width:143pt">
小型系统
</td>
</tr><!--[endif]-->
</tbody>
</table>
| 命令 | 命令格式和示例 | 说明 |
| -------- | -------- | -------- |
| mkdir | mkdir 目标文件夹 [mode] [owner] [group]<br/>如:mkdir /storage/myDirectory<br>mkdir /storage/myDirectory 0755 root root| 创建文件夹命令,mkdir和目标文件夹之间有且只能有一个空格。<li>系统类型:小型系统和标准系统 |
| chmod | chmod&nbsp;权限&nbsp;目标<br/>如:chmod&nbsp;0600&nbsp;/storage/myFile.txt<br/>chmod&nbsp;0750&nbsp;/storage/myDir | 修改权限命令,chmod权限目标之间间隔有且仅有一个空格,权限必须为0xxx格式。<li>系统类型:小型系统和标准系统|
| chown | chown&nbsp;uid&nbsp;gid&nbsp;目标<br/>如:chown&nbsp;900&nbsp;800&nbsp;/storage/myDir<br/>chown&nbsp;100&nbsp;100&nbsp;/storage/myFile.txt | 修改属组命令,chown&nbsp;uid&nbsp;gid目标之间间隔有且仅有一个空格。<li>系统类型:小型系统和标准系统 |
| mount | mount&nbsp;fileSystemType&nbsp;src&nbsp;dst&nbsp;flags&nbsp;[data]<br/>如:mount&nbsp;vfat&nbsp;/dev/mmcblk0&nbsp;/sdc&nbsp;rw,umask=000<br/>mount&nbsp;jffs2&nbsp;/dev/mtdblock3&nbsp;/storage&nbsp;nosuid | 挂载命令,各参数之间有且仅有一个空格。flags参考base/startup/init_lite/services/init/init_common_cmds.c中mountFlagMap函数mountFlagMap[],data为可选字段。<li>系统类型:小型系统和标准系统 |
| start | start&nbsp;serviceName<br/>如:start&nbsp;foundation| 启动服务命令,start后面跟着service名称,该service名称必须能够在services数组中找到。<li>系统类型:小型系统和标准系统 |
| export | export key value<br>如:export TEST /data/test | 设置环境变量命令。后面跟两个参数,第一个参数是环境变量名,第二个参数是环境变量值。<li>系统类型:小型系统和标准系统 |
| rm | rm filename<br>如:rm /data/testfile | 删除文件命令。后面跟一个参数,即文件的绝对路径。<li>系统类型:小型系统和标准系统 |
| rmdir | rmdir dirname<br>如:rmdir /data/testdir | 删除目录命令。后面跟一个参数,即目录的绝对路径。 <li>系统类型:小型系统和标准系统 |
| write | write filename value<br>如:write /data/testfile 0 | 写文件命令。后面跟两个参数,第一个参数是文件的绝对路径,第二个参数是要写入文件的字符串。 <li>系统类型:小型系统和标准系统 |
| stop | stop serviceName<br>如:stop console | 关闭服务命令。后面跟一个参数,即要关闭的服务名。<li>系统类型:小型系统和标准系统 |
| copy | copy oldfile newfile<br>如:copy /data/old /data/new | 拷贝文件命令。后面跟两个参数,第一个参数是原文件绝对路径,第二个参数是新文件绝对路径。<li>系统类型:小型系统和标准系统 |
| reset | reset serviceName<br>如:reset console | 重置服务命令。后面跟一个参数,即要重启的服务名。目前reset命令的策略是,如果一个服务没有启动,则该命令会将其拉起,如果一个服务处于运行状态,则该命令会将其关闭后重启。<li>系统类型:小型系统和标准系统 |
| reboot | reboot [subsystem]<br>如:reboot updater | 重启系统命令。后面可以跟一个参数,也可以没有参数,当没有参数时执行该命令,将会使设备重启到当前系统,当后面跟参数时,参数应当是子系统的名字,例如,reboot updater,将会重启进入updater子系统。<li>系统类型:小型系统和标准系统 |
| sleep | sleep time<br>如:sleep 5 | 睡眠命令。后面可以跟一个参数,该参数是睡眠时间, 限制睡眠时间在5秒内。<br>sleep命令谨慎使用。<li>系统类型:小型系统和标准系统 |
| domainname | domainname name<br>如:domainname localdomain | 设置域名。<li>系统类型:小型系统和标准系统 |
| hostname | hostname name<br>如:hostname localhost | 设置主机名命令。<li>系统类型:小型系统和标准系统 |
| wait | wait filepath [time]<br>如:wait /data/testfile 或 wait /data/testfile 5| 等待命令,等待时间不超过5秒。<li>系统类型:小型系统和标准系统 |
| setrlimit | setrlimit resource curValue maxValue<br>如:setrlimit RLIMIT_CPU 10 100| 设定资源使用限制命令。<li>系统类型:小型系统和标准系统 |
| write | write path content<br>如:write /proc/sys/kernel/sysrq 0 | 写文件命令。<li>系统类型:小型系统和标准系统 |
| exec | exec 可执行文件路径 可执行文件传的参数<br>如: exec /system/bin/mkdir /data/test.txt | 系统调用命令。<li>系统类型:小型系统和标准系统 |
| syncexec | syncexec 可执行文件路径 可执行文件传的参数<br>如:syncexec /system/bin/udevadm trigger| 同步执行,syncexec 会调用wait等待子进程结束。参数个数不超过10个。<li>标准系统
| mknode |mknod name { b \| c } Major Minor<br>如mknod path b 0644 1 9| 建立一个目录项和一个特殊文件的对应索引节点。<li>系统类型:标准系统 |
| makedev | makedev major minor<br>如:makedev -v update | 创建静态的设备节点命令,通常位于/dev目录下。<li>系统类型:标准系统 |
| symlink | symlink target link_name<br>如:symlink /proc/self/fd/0 /dev/stdin | 符号链接命令。<li>系统类型:标准系统 |
| trigger | trigger jobName<br>如:trigger early-fs | 触发job执行的命令。<li>系统类型:标准系统 |
| insmod | insmod [-f] [options]<br>如:insmod xxx.ko| 内核模块文件载入命令。<li>系统类型:标准系统 |
| setparam | setparam paramName paramValue<br>如:setparam sys.usb.config hdc| 设置系统参数。<li>标准系统 |
| load_persist_params | load persist params<br>如:load_persist_params&nbsp;| 加载persist参数。load_persist_params命令后有且仅有一个空格。<li>系统类型:标准系统 |
| load_param | load params<br>如:load_param /data/test.normal.para| 将文件里的param加载到内存。<li>系统类型:标准系统 |
| load_access_token_id | 如:load_access_token_id&nbsp;| 将access token信息写入data/service/el0/access_token/nativetoken.json文件,load_access_token_id后有且只有一个空格。<li>系统类型:标准系统 |
| ifup | ifup 激活网络接口<br>如:ifup eth0 | 激活指定的网络接口。<li>系统类型:标准系统 |
| mount_fstab | mount_fstab fstab.test<br>如:mount_fstab /vendor/etc/fstab.test| 按照fstab挂载分区的命令。<li>系统类型:标准系统 |
| umount_fstab | umount_fstab fstab.test<br>如:umount_fstab /vendor/etc/fstab.test | 按照fstab卸载分区的命令。<li>系统类型:标准系统 |
| restorecon | restorecon file or dir<br>如:restorecon /file | 重新加载selinux 的context。<li>系统类型:标准系统 |
| stopAllServices | stopAllServices [bool]<br>如:stopAllServices false 或 stopAllServices | 停止所有服务, 最长响应时间默认10毫秒。<li>系统类型:标准系统 |
| umount |umount path<br>如:umount /vendor | 卸载已经挂载的硬件设备 。<li>系统类型:标准系统 |
| sync | 如:sync&nbsp; | 同步写入数据到磁盘。sync后有且仅有一个空格。<li>系统类型:标准系统 |
| timer_start | timer_start serviceName<br>如:timer_start console | 启动服务计时器。<li>系统类型:标准系统 |
| timer_stop | timer_stop serviceName<br>如:timer_stop console | 停止服务计时器。<li>系统类型:标准系统 |
| init_global_key | init_global_key path<br>如:init_global_key /data | data分区文件加密key初始化。<li>系统类型:标准系统 |
| init_main_user | 如:init_main_user| 主用户目录加密。<li>系统类型:标准系统 |
| mkswap | mkswap file<br>如:mkswap /swapfile1 | 在一个文件或者设备上建立交换分区。<li>系统类型:标准系统 |
| swapon | swapon file <br>如:swapon /swapfile1| 激活交换空间。<li>系统类型:标准系统 |
| mksandbox | mksandbox fileName<br>如:mksandbox system | 创建沙盒。<li>标准系统 |
| loadcfg | loadcfg&nbsp;filePath<br/>如:loadcfg&nbsp;/patch/fstab.cfg | 加载其他cfg文件命令。后面跟着的目标文件大小不得超过50KB,且目前仅支持加载/patch/fstab.cfg,其他文件路径和文件名均不支持。/patch/fstab.cfg文件的每一行都是一条命令,命令类型和格式必须符合本表格描述,命令条数不得超过20条。<li>系统类型:小型系统 |
### 接口说明
jobs管理属于init启动过程中的一环,是一个流程化的功能,是完全服务于init启动过程的,并不对其他组件提供任何功能接口,其运行逻辑契合cfg中命令组的管理,无法对其他类型管理提供帮助。下述主要介绍其在init当中的调用逻辑。
**表2 job解析接口说明**
<table border="0" cellpadding="0" cellspacing="0" width="968" style="border-collapse: collapse;table-layout:fixed;width:727pt;orphans: 2;widows: 2;-webkit-text-stroke-width: 0px; text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial; box-sizing: border-box;border-spacing: 0px;word-break:initial;font-variant-ligatures: normal; font-variant-caps: normal">
<tbody>
<tr height="39" style="height:29.25pt;box-sizing: border-box">
<th height="39" class="xl6320252" width="249" style="height:29.25pt;width:187pt">
函数名
</th>
<th class="xl6420252" width="235" style="width:176pt;border-image: initial">
入参
</th>
<th class="xl6420252" width="106" style="width:80pt;border-image: initial">
返回值
</th>
<th class="xl6420252" width="200" style="width:150pt;border-image: initial">
功能
</th>
<th class="xl6520252" width="170" style="width:134pt;border-image: initial">
支持系统类型
</th>
</tr>
<tr height="99" style="mso-height-source:userset;height:74.25pt;box-sizing: border-box">
<td height="99" class="xl6620252" width="249" style="height:74.25pt;width:187pt; border-image: initial;box-sizing: border-box">
void ParseAllJobs(const cJSON *fileRoot)
</td>
<td class="xl6720252" width="235" style="width:176pt;border-image: initial; box-sizing: border-box">
const cJSON *fileRoot
</td>
<td class="xl6720252" width="106" style="width:80pt;border-image: initial; box-sizing: border-box">
void
</td>
<td class="xl6720252" width="200" style="width:150pt;border-image: initial; box-sizing: border-box">
jobs解析总入口。
</td>
<td class="xl6720252" width="170" style="width:134pt;border-image: initial; box-sizing: border-box">
小型系统和标准系统
</td>
</tr>
<tr height="147" style="mso-height-source:userset;height:110.25pt;box-sizing: border-box">
<td height="147" class="xl6820252" width="249" style="height:110.25pt;width:187pt; border-image: initial;box-sizing: border-box">
static void ParseJob(const cJSON <span style="mso-spacerun:yes">&nbsp;</span>*jobItem, Job *resJob)
</td>
<td class="xl6920252" width="235" style="width:176pt;border-image: initial; box-sizing: border-box">
const cJSON *jobItem, Job *resJob
</td>
<td class="xl6920252" width="106" style="width:80pt;border-image: initial; box-sizing: border-box">
void
</td>
<td class="xl7020252" width="200" style="width:150pt;border-image: initial; box-sizing: border-box">
校验job是否已存在,解析cmds下命令的功能。
</td>
<td class="xl6920252" width="170" style="width:134pt;border-image: initial; box-sizing: border-box">
小型系统
</td>
</tr>
<tr height="177" style="mso-height-source:userset;height:132.75pt;box-sizing: border-box">
<td height="177" class="xl6620252" width="249" style="height:132.75pt;width:187pt; border-image: initial;box-sizing: border-box">
int GetCmdLinesFromJson(const cJSON *root, CmdLines **cmdLines)
</td>
<td class="xl6720252" width="235" style="width:176pt;border-image: initial; box-sizing: border-box">
const cJSON *root, CmdLines **cmdLines
</td>
<td class="xl6720252" width="106" style="width:80pt;border-image: initial; box-sizing: border-box">
int
</td>
<td class="xl6720252" width="200" style="width:150pt">
解析job中cmds命令。当前小型系统使用,标准系统由于涉及trigger功能和condition条件启动功能,并未使用该接口进行命令解析。
</td>
<td class="xl6720252" width="170" style="width:134pt;border-image: initial; box-sizing: border-box">
小型系统和标准系统
</td>
</tr>
<tr height="171" style="mso-height-source:userset;height:128.25pt;box-sizing: border-box">
<td height="171" class="xl6820252" width="249" style="height:128.25pt;width:187pt; border-image: initial;box-sizing: border-box">
int ParseTriggerConfig(const cJSON *fileRoot, int (*checkJobValid)(const char *jobName))
</td>
<td class="xl6920252" width="235" style="width:176pt;border-image: initial; box-sizing: border-box">
const cJSON *fileRoot, int (*checkJobValid)(const char *jobName)
</td>
<td class="xl6920252" width="106" style="width:80pt;border-image: initial; box-sizing: border-box">
int
</td>
<td class="xl6920252" width="200" style="width:150pt;border-image: initial; box-sizing: border-box">
解析job中Trigger命令。
</td>
<td class="xl6920252" width="170" style="width:134pt;border-image: initial; box-sizing: border-box">
标准系统
</td>
</tr>
<tr height="210" style="mso-height-source:userset;height:157.5pt;box-sizing: border-box">
<td height="210" class="xl6620252" width="249" style="height:157.5pt;width:187pt; border-image: initial;box-sizing: border-box">
static int ParseTrigger_(const TriggerWorkSpace *workSpace, const cJSON *triggerItem, int (*checkJobValid)(const char *jobName))
</td>
<td class="xl6720252" width="235" style="width:176pt;border-image: initial; box-sizing: border-box">
const TriggerWorkSpace *workSpace, const cJSON *triggerItem, int (*checkJobValid)(const char *jobName)
</td>
<td class="xl6720252" width="106" style="width:80pt;border-image: initial; box-sizing: border-box">
int
</td>
<td class="xl6720252" width="200" style="width:150pt">
获取job名称,condition属性以及cmds命令组的功能,解析到的job以hash表的形式存储,而命令的保存则使用了队列结构。
</td>
<td class="xl6720252" width="170" style="width:134pt;border-image: initial; box-sizing: border-box">
标准系统
</td>
</tr><!--[endif]-->
</tbody>
</table>
| 函数名 | 函数解释 | 支持系统类型 |
|:--------|:-----|:------|
|void ParseAllJobs(const cJSON *fileRoot)|jobs解析总入口。| 小型系统和标准系统 |
|static void ParseJob(const cJSON *jobItem, Job *resJob)|校验job是否已存在,解析cmds下命令的功能。| 小型系统 |
|int GetCmdLinesFromJson(const cJSON *root, CmdLines **cmdLines)| 解析job中cmds命令。当前小型系统使用,标准系统由于涉及trigger<br/>功能和condition条件启动功能,并未使用该接口进行命令解析。| 小型系统和标准系统 |
|int ParseTriggerConfig(const cJSON *fileRoot, <br>int (*checkJobValid)(const char *jobName))|解析job中Trigger命令。| 标准系统 |
|static int ParseTrigger_(const TriggerWorkSpace *workSpace,<br>const cJSON *triggerItem, <br/>int (*checkJobValid)(const char *jobName))|获取job名称,condition属性以及cmds命令组的功能,解析到的<br/>job以hash表的形式存储,而命令的保存则使用了队列结构。| 标准系统 |
**表3 job触发接口说明**
<table border="0" cellpadding="0" cellspacing="0" width="906" style="border-collapse: collapse;table-layout:fixed;width:681pt;box-sizing: border-box;border-spacing: 0px; word-break:initial;font-variant-ligatures: normal;font-variant-caps: normal; orphans: 2;widows: 2;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial; text-decoration-style: initial;text-decoration-color: initial">
<tbody>
<tr height="39" style="height:35.25pt;box-sizing: border-box">
<th height="47" class="xl6322245" width="239" style="height:35.25pt;width:153pt">
函数名
</th>
<th class="xl6322245" width="235" style="border-left:none;width:178pt">
入参
</th>
<th class="xl6322245" width="106" style="border-left:none;width:80pt">
返回值
</th>
<th class="xl6322245" width="200" style="border-left:none;width:128pt">
功能
</th>
<th class="xl6322245" width="170" style="border-left:none;width:133pt">
支持系统类型
</th>
</tr>
<tr height="257" style="mso-height-source:userset;height:192.75pt;box-sizing: border-box">
<td height="257" class="xl6422245" width="204" style="height:192.75pt;border-top: none;width:153pt;box-sizing: border-box">
void PostTrigger(EventType type, const char *content, uint32_t contentLen)
</td>
<td class="xl6422245" width="235" style="border-top:none;border-left:none; width:178pt;box-sizing: border-box">
EventType type, const char *content, uint32_t contentLen
</td>
<td class="xl6422245" width="106" style="border-top:none;border-left:none; width:80pt;box-sizing: border-box">
void
</td>
<td class="xl6422245" width="170" style="border-top:none;border-left:none; width:128pt;box-sizing: border-box">
校验名称的有效性并发送触发job事件的功能。
</td>
<td class="xl6422245" width="170" style="border-top:none;border-left:none; width:133pt;box-sizing: border-box">
标准系统
</td>
</tr>
<tr height="323" style="height:242.25pt;box-sizing: border-box">
<td height="323" class="xl6522245" width="204" style="height:242.25pt;border-top: none;width:153pt;box-sizing: border-box">
static void SendTriggerEvent(int type, const char *content, uint32_t contentLen)
</td>
<td class="xl6522245" width="235" style="border-top:none;border-left:none; width:178pt;box-sizing: border-box">
int type, const char *content, uint32_t contentLen
</td>
<td class="xl6522245" width="106" style="border-top:none;border-left:none; width:80pt;box-sizing: border-box">
void
</td>
<td class="xl6522245" width="170" style="border-top:none;border-left:none; width:128pt;box-sizing: border-box">
通过系统参数进行整机控制以及服务的启动与停止等。
</td>
<td class="xl6522245" width="170" style="border-top:none;border-left:none; width:133pt;box-sizing: border-box">
标准系统
</td>
</tr>
<tr height="188" style="mso-height-source:userset;height:141.0pt;box-sizing: border-box">
<td height="188" class="xl6422245" width="204" style="height:141.0pt;border-top: none;width:153pt;box-sizing: border-box">
static void DoTriggerCmd(const struct CmdArgs *ctx)
</td>
<td class="xl6422245" width="235" style="border-top:none;border-left:none; width:178pt;box-sizing: border-box">
const struct CmdArgs *ctx
</td>
<td class="xl6422245" width="106" style="border-top:none;border-left:none; width:80pt;box-sizing: border-box">
void
</td>
<td class="xl6422245" width="170" style="border-top:none;border-left:none; width:128pt;box-sizing: border-box">
trigger命令执行接口
</td>
<td class="xl6422245" width="170" style="border-top:none;border-left:none; width:133pt;box-sizing: border-box">
标准系统
</td>
</tr>
<tr height="258" style="mso-height-source:userset;height:193.5pt;box-sizing: border-box">
<td height="258" class="xl6522245" width="204" style="height:193.5pt;border-top: none;width:153pt;box-sizing: border-box">
void DoTriggerExec(const char *triggerName)
</td>
<td class="xl6522245" width="235" style="border-top:none;border-left:none; width:178pt;box-sizing: border-box">
const char *triggerName
</td>
<td class="xl6522245" width="106" style="border-top:none;border-left:none; width:80pt;box-sizing: border-box">
void
</td>
<td class="xl6522245" width="170" style="border-top:none;border-left:none; width:128pt;box-sizing: border-box">
仅标准系统可用。通过参数中的job名称找到对应命令组,并将命令推入执行队列依次执行。
</td>
<td class="xl6522245" width="170" style="border-top:none;border-left:none; width:133pt;box-sizing: border-box">
标准系统
</td>
</tr>
<tr height="254" style="height:190.5pt;box-sizing: border-box">
<td height="254" class="xl6422245" width="204" style="height:190.5pt;border-top: none;width:153pt;box-sizing: border-box">
void DoJob(const char *jobName)
</td>
<td class="xl6422245" width="235" style="border-top:none;border-left:none; width:178pt;box-sizing: border-box">
const char *jobName
</td>
<td class="xl6422245" width="118" style="border-top:none;border-left:none; width:80pt;box-sizing: border-box">
void
</td>
<td class="xl6422245" width="170" style="border-top:none;border-left:none; width:128pt;box-sizing: border-box">
通过jobName匹配对应job,调用DoCmdByIndex执行其中的命令。
</td>
<td class="xl6422245" width="170" style="border-top:none;border-left:none; width:133pt;box-sizing: border-box">
小型系统
</td>
</tr>
<tr height="208" style="height:156.0pt;box-sizing: border-box">
<td height="208" class="xl6522245" width="204" style="height:156.0pt;border-top: none;width:153pt;box-sizing: border-box">
void DoCmdByIndex(int index, const char *cmdContent)
</td>
<td class="xl6522245" width="235" style="border-top:none;border-left:none; width:178pt;box-sizing: border-box">
int index, const char *cmdContent
</td>
<td class="xl6522245" width="118" style="border-top:none;border-left:none; width:80pt;box-sizing: border-box">
void
</td>
<td class="xl6522245" width="170" style="border-top:none;border-left:none; width:128pt;box-sizing: border-box">
拼接参数与命令。
</td>
<td class="xl6522245" width="170" style="border-top:none;border-left:none; width:133pt;box-sizing: border-box">
小型系统和标准系统
</td>
</tr><!--[endif]-->
</tbody>
</table>
| 函数名 | 函数解释 | 支持系统类型 |
|:--------|:-----|:------|
|void PostTrigger(EventType type, const char *content, uint32_t contentLen)|校验名称的有效性并发送触发job事件的功能。| 标准系统 |
|static void SendTriggerEvent(int type, const char *content, uint32_t contentLen)|通过系统参数进行整机控制以及服务的启动与停止等。| 标准系统 |
|static void DoTriggerCmd(const struct CmdArgs *ctx)|trigger命令执行接口| 标准系统 |
|void DoTriggerExec(const char *triggerName)|仅标准系统可用。通过参数中的job名称<br>找到对应命令组,并将命令推入执行队列依次执行。| 标准系统 |
|void DoJob(const char *jobName)|通过jobName匹配对应job,调用DoCmdByIndex<br>执行其中的命令。| 小型系统 |
|void DoCmdByIndex(int index, const char *cmdContent)|拼接参数与命令。| 小型系统和标准系统 |
### 开发实例
下述为cfg文件中jobs配置模板,可验证jobs管理的功能。
......
......@@ -20,11 +20,11 @@ bootchart 只支持标准系统, begetctl 支持小型系统和标准系统。
| param ls [-r] [name] | 显示系统参数,例如:<br>查看usb系统参数:begetctl param ls persist.sys.usb | 无 |
| param get [name] | 获取系统参数信息,例如:<br>begetctl param get 或 param get | 无 |
| param set name value| 设置系统参数,例如:<br>begetctl param set ohos.servicectrl.display 1 或 param set ohos.servicectrl.display 1| 无 |
| param wait name [value] [timeout] | 等待系统参数,例如:<br>begetctl param wait persist.sys.usb.config hdc 或 param wait persist.sys.usb.config hdc | timeout默认值:30 |
| param wait name [value] [timeout] | 等待系统参数,例如:<br>begetctl param wait persist.sys.usb.config hdc 或 param wait persist.sys.usb.config hdc | timeout默认值:30 |
| param dump [verbose] | dump 系统参数信息,例如:<br>begetctl param dump 或 param dump| 无 |
| param shell [name] | 进入Parameter shell,例如:<br>begetctl param shell 或 param shell| 无 |
| timer_stop servicename | 停止服务计时器,例如:<br>begetctl timer_stop appspawn | servicename长度不超过96字符 |
| timer_start servicename timeout | 启动服务计时器,例如:<br>begetctl timer_start appspawn | servicename长度不超过96;timeout默认值:10s |
| timer_start servicename timeout | 启动服务计时器,例如:<br>begetctl timer_start appspawn | servicename长度不超过96;timeout默认值:10毫秒 |
| start_service servicename | 启动服务,例如:<br>begetctl start_service appspawn 或 start_service appspawn | 无 |
| stop_service servicename | 停止服务,例如:<br>begetctl stop_service appspawn 或 stop_service appspawn | 无 |
| service_control start servicename | 启动服务,例如:<br>begetctl service_control start appspawn 或 service_control start appspawn | 无 |
......@@ -37,17 +37,23 @@ bootchart 只支持标准系统, begetctl 支持小型系统和标准系统。
| reboot updater[:options] | 重新启动并进入updater,例如:<br>begetctl reboot updater 或 reboot updater | 无 |
| reboot flashd | 重新启动并进入flashd,例如:<br>begetctl reboot flashd 或 reboot flashd | 无 |
| reboot flashd[:options] | 重新启动并进入flashd,例如:<br>begetctl reboot flashd 或 reboot flashd | 无 |
| reboot charging | 重新启动并进入charging,例如:<br>begetctl reboot charging 或 reboot charging| 无 |
| reboot charge | 重新启动并进入charge,例如:<br>begetctl reboot charge 或 reboot charge | 无 |
| reboot loader | 重新启动并进入烧写模式,例如:<br>begetctl reboot loader 或 reboot loader | 无 |
| bootchart stop | 停止图形分析,例如:<br>begetctl bootchart stop | 仅支持rk3568|
| bootchart start | 开始图形分析,例如:<br>begetctl bootchart start | 无 |
| bootchart disable | 图形分析不使能,例如:<br>begetctl bootchart disable | 无 |
| bootchart enable | 图形分析使能,例如:<br>begetctl bootchart enable | 无 |
| sandbox -s service_name | 服务进沙盒,例如 <br>sandbox -s foundation | 无 |
| sandbox -p process_name | 进程进沙盒,例如 <br>sandbox -p /bin/sh | 无 |
| sandbox -n sandbox_name | 进入配置的system或者chipset沙盒,<br>sandbox -n system | 无 |
| sandbox -s service_name | 服务进沙盒,例如<br>sandbox -s foundation | 无 |
| sandbox -p process_name | 进程进沙盒,例如<br>sandbox -p /bin/sh | 无 |
| sandbox -n sandbox_name | 进入配置的system或者chipset沙盒,例如:<br>sandbox -n system | 无 |
| sandbox -h | sandbox command help | 无 |
| partitionslot getslot | 获取当前活动slot,例如:<br>begetctl partitionslot getslot 或 partitionslot getslot | 无 |
| partitionslot getsuffix slot | 获取当前匹配slot,例如:<br>begetctl partitionslot getsuffix 1 或 partitionslot getsuffix 1 | 无 |
| partitionslot setactive slot | 设置活动slot,例如:<br>begetctl partitionslot setactive 1 或 partitionslot setactive 1 | 无 |
| partitionslot setunboot slot | 设置非活动slot,例如:<br>begetctl partitionslot setunboot 1 或 partitionslot setunboot 1 | 无 |
| modulectl uninstall moduleName | 卸载动态插件,例如:<br>modulectl uninstall bootchart | 无 |
| modulectl install moduleName | 安装动态插件,例如:<br>modulectl install bootchart | 无 |
| modulectl list | 动态插件列表,例如:<br>begetctl modulectl list | 无 |
## 开发指导
......
......@@ -115,239 +115,23 @@
### 参数说明
**表1** service字段说明<a name="table14737791471"></a>
<table border="0" cellpadding="0" cellspacing="0" width="737" style="border-collapse: collapse;table-layout:fixed;width:554pt;border-spacing: 0px;font-variant-ligatures: normal; font-variant-caps: normal;orphans: 2;widows: 2;-webkit-text-stroke-width: 0px; text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial">
<tbody>
<tr height="24" style="height:18.0pt">
<th height="24" class="xl6521805" width="126" style="height:18.0pt;width:95pt">
字段名
</th>
<th class="xl6521805" width="196" style="border-left:none;width:147pt">
字段说明
</th>
<th class="xl6521805" width="242" style="border-left:none;width:182pt">
字段解释
</th>
<th class="xl6521805" width="173" style="border-left:none;width:130pt">
支持系统类型
</th>
</tr>
<tr height="111" style="mso-height-source:userset;height:83.25pt">
<td height="111" class="xl6621805" width="126" style="height:83.25pt;border-top: none;width:95pt">
name
</td>
<td class="xl6621805" width="196" style="border-top:none;border-left:none; width:147pt">
当前服务的服务名。(必选)
</td>
<td class="xl6621805" width="242" style="border-top:none;border-left:none; width:182pt">
类型:字符串; 服务名非空且长度&lt;=32字节。
</td>
<td class="xl6621805" width="173" style="border-top:none;border-left:none; width:130pt">
小型系统和标准系统
</td>
</tr>
<tr height="185" style="mso-height-source:userset;height:138.75pt">
<td height="185" class="xl6621805" width="126" style="height:138.75pt;border-top: none;width:95pt">
path
</td>
<td class="xl6621805" width="196" style="border-top:none;border-left:none; width:147pt">
当前服务的可执行文件全路径和参数,数组形式。 (必选)
</td>
<td class="xl6621805" width="242" style="border-top:none;border-left:none; width:182pt">
确保第一个数组元素为可执行文件路径、数组元素个数&lt;=20。<br>
每个元素为字符串形式以及每个字符串长度&lt;=64字节。
</td>
<td class="xl6621805" width="173" style="border-top:none;border-left:none; width:130pt">
小型系统和标准系统
</td>
</tr>
<tr height="71" style="mso-height-source:userset;height:53.25pt">
<td height="71" class="xl6621805" width="126" style="height:53.25pt;border-top: none;width:95pt">
uid
</td>
<td class="xl6621805" width="196" style="border-top:none;border-left:none; width:147pt">
当前服务进程的uid值。
</td>
<td class="xl6621805" width="242" style="border-top:none;border-left:none; width:182pt">
类型:int、字符串。
</td>
<td class="xl6621805" width="173" style="border-top:none;border-left:none; width:130pt">
小型系统和标准系统
</td>
</tr>
<tr height="93" style="mso-height-source:userset;height:69.75pt">
<td height="93" class="xl6621805" width="126" style="height:69.75pt;border-top: none;width:95pt">
gid
</td>
<td class="xl6621805" width="196" style="border-top:none;border-left:none; width:147pt">
当前服务进程的gid值。
</td>
<td class="xl6621805" width="242" style="border-top:none;border-left:none; width:182pt">
类型:int、int[]、字符串、字符串数组。
</td>
<td class="xl6621805" width="173" style="border-top:none;border-left:none; width:130pt">
小型系统和标准系统
</td>
</tr>
<tr height="218" style="mso-height-source:userset;height:163.5pt">
<td height="218" class="xl6621805" width="126" style="height:163.5pt;border-top: none;width:95pt">
once
</td>
<td class="xl6621805" width="196" style="border-top:none;border-left:none; width:147pt">
当前服务进程是否为一次性进程。
</td>
<td class="xl6621805" width="242" style="border-top:none;border-left:none; width:182pt">
1:一次性进程,当该进程退出时,init不会重新启动该服务进程。<br>
0 : 常驻进程,当该进程退出时,init收到SIGCHLD信号并重新启动该服务进程。
</td>
<td class="xl6621805" width="173" style="border-top:none;border-left:none; width:130pt">
小型系统和标准系统
</td>
</tr>
<tr height="182" style="mso-height-source:userset;height:136.5pt">
<td height="182" class="xl6621805" width="126" style="height:136.5pt;border-top: none;width:95pt">
importance
</td>
<td class="xl6621805" width="196" style="border-top:none;border-left:none; width:147pt">
标准系统:当前服务优先级<br>小型系统:标记服务重要性
</td>
<td class="xl6621805" width="242" style="border-top:none;border-left:none; width:182pt">
标准系统中: 服务优先级取值范围 [-20, 19],超出为无效设置。<br>
小型系统中:0 :不重启系统 ;非0 : 重启系统。
</td>
<td class="xl6621805" width="173" style="border-top:none;border-left:none; width:130pt">
小型系统和标准系统
</td>
</tr>
<tr height="219" style="mso-height-source:userset;height:164.25pt">
<td height="219" class="xl6621805" width="126" style="height:164.25pt;border-top: none;width:95pt">
caps
</td>
<td class="xl6621805" width="196" style="border-top:none;border-left:none; width:147pt">
当前服务所需的capability值,根据安全子系统已支持的capability,评估所需的capability,遵循最小权限原则配置。
</td>
<td class="xl6621805" width="242" style="border-top:none;border-left:none; width:182pt">
类型:数字或者字符串数组,在配置数字时,按linux标准的capability进行配置。字符串时,使用标准定义的宏的名字进行配置。
</td>
<td class="xl6621805" width="173" style="border-top:none;border-left:none; width:130pt">
小型系统和标准系统
</td>
</tr>
<tr height="405" style="mso-height-source:userset;height:303.75pt">
<td height="405" class="xl6621805" width="126" style="height:303.75pt;border-top: none;width:95pt">
critical
</td>
<td class="xl6621805" width="196" style="border-top:none;border-left:none; width:147pt">
为服务提供抑制机制,服务在配置时间 T 内,频繁重启次数超过设置次数 N 重启系统。
</td>
<td class="xl6621805" width="242" style="border-top:none;border-left:none; width:182pt">
标准系统中: 类型:int[],如:"critical" : [M, N, T],其中M:使能标志位(0:不使能;1:使能), N:频繁拉起服务次数, T:时间(单位:秒)。M &gt; 0; N &gt; 0。<br>
小型系统中 &amp; 标准系统中:类型:int,如:"critical" : M,其中 M:使能标志位(0:不使能;1:使能)。 默认拉起服务次数:4次, 时间:20秒 。
</td>
<td class="xl6621805" width="173" style="border-top:none;border-left:none; width:130pt">
标准系统
</td>
</tr>
<tr height="173" style="mso-height-source:userset;height:129.75pt">
<td height="173" class="xl6621805" width="126" style="height:129.75pt;border-top: none;width:95pt">
cpucore
</td>
<td class="xl6621805" width="196" style="border-top:none;border-left:none; width:147pt">
服务需要的绑定的cpu核心数
</td>
<td class="xl6621805" width="242" style="border-top:none;border-left:none; width:182pt">
类型:int型数组, 如"cpucore" : [N1, N2, ...], N1, N2均为需要绑定的cpu核索引, 如单核设备 cpucore : [0]。
</td>
<td class="xl6621805" width="173" style="border-top:none;border-left:none; width:130pt">
标准系统
</td>
</tr>
<tr height="116" style="mso-height-source:userset;height:87.0pt">
<td height="116" class="xl6621805" width="126" style="height:87.0pt;border-top: none;width:95pt">
d-caps
</td>
<td class="xl6621805" width="196" style="border-top:none;border-left:none; width:147pt">
服务分布式能力(仅标准系统以上提供)。
</td>
<td class="xl6621805" width="242" style="border-top:none;border-left:none; width:182pt">
类型:字符串数组, 如 "d-caps" : ["OHOS_DMS"]。
</td>
<td class="xl6621805" width="173" style="border-top:none;border-left:none; width:130pt">
标准系统
</td>
</tr>
<tr height="182" style="mso-height-source:userset;height:136.5pt">
<td height="182" class="xl6621805" width="126" style="height:136.5pt;border-top: none;width:95pt">
apl
</td>
<td class="xl6621805" width="196" style="border-top:none;border-left:none; width:147pt">
服务能力特权级别(仅标准系统以上提供)。
</td>
<td class="xl6621805" width="242" style="border-top:none;border-left:none; width:182pt">
类型:字符串, 如 "apl" : "system_core"。 目前支持"system_core"(默认值), "normal", "system_basic"。
</td>
<td class="xl6621805" width="173" style="border-top:none;border-left:none; width:130pt">
标准系统
</td>
</tr>
<tr height="193" style="mso-height-source:userset;height:144.75pt">
<td height="193" class="xl6621805" width="126" style="height:144.75pt;border-top: none;width:95pt">
start-mode
</td>
<td class="xl6621805" width="196" style="border-top:none;border-left:none; width:147pt">
服务的启动模式(仅标准系统以上提供)。
</td>
<td class="xl6721805" width="242" style="border-top:none;border-left:none; width:182pt">
<a href="#section56901555918">类型:字符串, 如 "start-mode" : "condition"。目前支持"boot", "normal", "condition"。具体说明参考:init服务启动控制。</a>
</td>
<td class="xl6621805" width="173" style="border-top:none;border-left:none; width:130pt">
标准系统
</td>
</tr>
<tr height="147" style="mso-height-source:userset;height:110.25pt">
<td height="147" class="xl6621805" width="126" style="height:110.25pt;border-top: none;width:95pt">
ondemand
</td>
<td class="xl6621805" width="196" style="border-top:none;border-left:none; width:147pt">
按需启动服务的标志。
</td>
<td class="xl6721805" width="242" style="border-top:none;border-left:none; width:182pt">
<a href="#section56901555920">类型:bool,如"ondemand" : true,小型系统只在Linux内核上支持。具体说明参考:init服务按需启动。</a>
</td>
<td class="xl6621805" width="173" style="border-top:none;border-left:none; width:130pt">
小型系统和标准系统
</td>
</tr>
<tr height="72" style="mso-height-source:userset;height:54.0pt">
<td height="72" class="xl6621805" width="126" style="height:54.0pt;border-top:none; width:95pt">
disable
</td>
<td class="xl6621805" width="196" style="border-top:none;border-left:none; width:147pt">
预留字段,无实际意义。
</td>
<td class="xl6621805" width="242" style="border-top:none;border-left:none; width:182pt">
无。
</td>
<td class="xl6621805" width="173" style="border-top:none;border-left:none; width:130pt">
小型系统和标准系统
</td>
</tr>
<tr height="106" style="mso-height-source:userset;height:79.5pt">
<td height="106" class="xl6621805" width="126" style="height:79.5pt;border-top: none;width:95pt">
sandbox
</td>
<td class="xl6621805" width="196" style="border-top:none;border-left:none; width:147pt">
沙盒功能是否打开。
</td>
<td class="xl6621805" width="242" style="border-top:none;border-left:none; width:182pt">
1:打开服务的沙盒功能 (默认值)。<br>
0:关闭服务的沙盒功能。
</td>
<td class="xl6621805" width="173" style="border-top:none;border-left:none; width:130pt">
标准系统
</td><!--[endif]-->
</tr>
</tbody>
</table>
| 字段名 | 支持系统类型 | 字段说明 | 字段解释 |
| ---------- |-------- | --------| --------|
| name | 小型系统和标准系统 | 当前服务的服务名。(必选) | 类型:字符串; 服务名非空且长度<=32字节。|
| path | 小型系统和标准系统 | 当前服务的可执行文件全路径和参数,数组形式。 (必选) | 确保第一个数组元素为可执行文件路径、数组元素个数<=20。 <br> 每个元素为字符串形式以及每个字符串长度<=64字节。|
| uid | 小型系统和标准系统 | 当前服务进程的uid值。 | 类型:int、字符串。 |
| gid | 小型系统和标准系统 | 当前服务进程的gid值。 | 类型:int、int[]、字符串、字符串数组。 |
| once | 小型系统和标准系统 | 当前服务进程是否为一次性进程。 | 1:一次性进程,当该进程退出时,init不会重新启动该服务进程。 <br>0 : 常驻进程,当该进程退出时,init收到SIGCHLD信号并重新启动该服务进程。 |
| importance | 小型系统和标准系统 | <li>标准系统:当前服务优先级<li>小型系统:标记服务重要性 | <li>标准系统中: 服务优先级取值范围 [-20, 19],超出为无效设置。<li>小型系统中:0 : 不重启系统;非0 : 重启系统 |
| caps | 小型系统和标准系统 | 当前服务所需的capability值,根据安全子系统已支持的capability,评估所需的capability,遵循最小权限原则配置。| 类型:数字或者字符串数组,在配置数字时,按linux标准的capability进行配置。字符串时,使用标准定义的宏的名字进行配置。 |
| critical | 标准系统 | 为服务提供抑制机制,服务在配置时间 T 内,频繁重启次数超过设置次数 N 重启系统。 | <li>标准系统中: 类型:int[],如:"critical" : [M, N, T],其中M:使能标志位(0:不使能;1:使能), N:频繁拉起服务次数, T:时间(单位:秒)。M > 0; N > 0。 <li> 小型系统中 & 标准系统中:类型:int,如:"critical" : M,其中 M:使能标志位(0:不使能;1:使能)。 默认拉起服务次数:4次, 时间:20秒 。|
| cpucore | 标准系统 | 服务需要的绑定的cpu核心数 | 类型:int型数组, 如"cpucore" : [N1, N2, ...], N1, N2均为需要绑定的cpu核索引, 如单核设备 cpucore : [0]。 |
| d-caps | 标准系统 | 服务分布式能力。| 类型:字符串数组, 如 "d-caps" : ["OHOS_DMS"]。 |
| apl | 标准系统 | 服务能力特权级别。 | 类型:字符串, 如 "apl" : "system_core"。<br> 目前支持"system_core"(默认值), "normal", "system_basic"。 |
| start-mode | 标准系统 | 服务的启动模式。 | 类型:字符串, 如 "start-mode" : "condition"。<br>目前支持"boot", "normal", "condition"。具体说明参考:[init服务启动控制](#section56901555918)。 |
| ondemand | 小型系统和标准系统 | 按需启动服务的标志。 | 类型:bool,如"ondemand" : true,小型系统只在Linux内核上支持。具体说明参考:[init服务按需启动](#section56901555920)。|
| disable | 小型系统和标准系统 | 预留字段,无实际意义。 | 无。 |
| sandbox | 标准系统 | 沙盒功能是否打开。 | 1:打开服务的沙盒功能 (默认值)。<br>0:关闭服务的沙盒功能。 |
**表2** socket字段说明
| 字段名 | 说明 |
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册