Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
api:rc:zh [2023/11/30 07:47]
hfsr [RC脚本方法]
api:rc:zh [2023/11/30 08:01]
hfsr [命令行界面]
Line 51: Line 51:
 ==== RC脚本配置 ==== ==== RC脚本配置 ====
  
-你可以在`/​etc/​rc.cfg`文件中定义脚本配置 ​(语法必须符合lua可读取的标准)。假设你的RC脚本位置在`/​etc/​rc.d/​foo.lua`,则模块为`foo`,其在配置文件中的字段名称(键名)也需要为`foo`。OpenOS提供的样例RC脚本`example`也涉及了这一点。此模块的脚本文件为`/​etc/​rc.d/​example.lua`,同时`/​etc/​rc.cfg`配置文件中有:+你可以在`/​etc/​rc.cfg`文件中定义自己的脚本配置语法必须符合lua可读取的标准。假设你的RC脚本位置在`/​etc/​rc.d/​foo.lua`,则模块名为`foo`,其在配置文件中的字段名称(键名)也需要为`foo`。OpenOS提供的样例RC脚本`example`也涉及了这一点。此模块的脚本文件为`/​etc/​rc.d/​example.lua`,同时`/​etc/​rc.cfg`配置文件中有:
  
 ```lua ```lua
Line 58: Line 58:
 ``` ```
  
-`enabled`列表由[[api:​rc:​zh#​RC控制器|控制器]]维护,但`example`字段中存储的是`example`RC脚本的配置。字段的值可以是任何lua值,不只是字符串。当然也包含表。脚本的配置值会被加载到你的脚本环境中。在你的脚本中你可以通过的全局字段名称`args`来访问你的配置。请再回头查看`example.lua`脚本的代码,注意它对`args`变量的用法。你的脚本和配置只会由控制器加载和缓存一次。+`enabled`列表由[[api:​rc:​zh#​RC控制器|控制器]]维护,但`example`字段中存储的是`example`RC脚本的配置。字段的值可以是任何lua值,不只是字符串。当然也包含表。脚本的配置值会被加载到你的脚本环境中。在脚本中你可以通过名为`args`的全局字段来访问你的配置。请再回头查看`example.lua`脚本的代码,注意它对`args`变量的用法。你的脚本和配置只会由控制器加载和缓存一次。
  
 ===== RC控制器 ===== ===== RC控制器 =====
  
-RC控制器提供了一个命令行接口,你可以在shell中通过`rc`(`/​bin/​rc.lua`)访问。还提供了一个运行库,你可以通过`require("​rc"​)`来访问。 +RC控制器提供了一个命令行接口,你可以在shell中通过`rc``/​bin/​rc.lua`访问。还提供了一个运行库,你可以通过`require("​rc"​)`来访问。 ​  
-RC控制器维护着一份列表,表中记录了配置为开机时启动rc脚本。RC控制器中还缓存了已加载的RC脚本。 +RC控制器维护着一份列表,表中记录了配置为开机时执行RC脚本。RC控制器中还缓存了已加载的RC脚本。 ​  
-不像其他自启动设置,如autorun和`.shrc`,启用的RC脚本只会在OpenOS启动时自动执行一次。+不像其他自启动方案,如autorun和`.shrc`,启用的RC脚本只会在OpenOS启动时自动执行一次。
  
-==== 命令行界面 ​==== +==== 命令行接口 ​====
- +
-`rc` +
- +
-调用所有被启用的RC脚本的`start`方法 +
- +
-`rc <​模块名>​ enable` +
- +
-将名为<​模块名>​的RC脚本添加到“自启动”RC脚本的列表中。下次开机启动时将会自动调用<​模块名>​.start()。 +
- +
-`rc <​模块名>​ disable` +
- +
-将名为<​模块名>​的RC脚本从“自启动”RC脚本的列表中移除。下次启动时名为<​模块名>​的脚本不会自启动。 +
- +
-`rc <​模块名>​ restart` +
- +
-如果名为<​模块名>​的脚本同时定义了`stop()`和`start()`方法,则依次调用它们。 +
- +
-`rc <​模块名>​ <​方法名>​ [参数...]`+
  
 +`rc`  ​
 +调用所有启用的RC脚本的`start`方法。  ​
 +\\
 +`rc <​模块名>​ enable`  ​
 +将名为<​模块名>​的RC脚本添加到“自启动”RC脚本的列表中。下次开机启动时将会自动调用<​模块名>​.start()。  ​
 +\\
 +`rc <​模块名>​ disable`  ​
 +将名为<​模块名>​的RC脚本从“自启动”RC脚本的列表中移除。下次启动时名为<​模块名>​的脚本不会自启动。  ​
 +\\
 +`rc <​模块名>​ restart`  ​
 +若名为<​模块名>​的脚本同时定义了`stop()`和`start()`方法,则依次调用它们。  ​
 +\\
 +`rc <​模块名>​ <​方法名>​ [参数...]`  ​
 调用名为<​模块名>​的RC脚本中定义的<​方法名>​方法,如果有[参数...],则将它们作为函数参数传递给此方法。 调用名为<​模块名>​的RC脚本中定义的<​方法名>​方法,如果有[参数...],则将它们作为函数参数传递给此方法。
 ==== RC API ==== ==== RC API ====