OpenRC Controller

在系统应用菜单中打开“OpenRC 控制器”,或运行 openrc-controller。 程序使用 C++、FLTK 原生 gtk+ 控件和系统中文翻译,不属于 Office 分组。

权限与会话

root 账户直接进入。普通用户进入前选择 sudo 当前用户密码或 root 账户密码; 取消认证会退出程序。sudo 方式仍要求账户具有 sudo 权限,例如属于 wheel 组。 密码不保存,输入期间关闭输入法,认证后清除内存缓冲区。

图形界面保持启动用户身份;固定路径 /usr/lib/reliefos/apps/openrc-controller/openrc-controller.elf --worker 作为受限 root 工作进程,处理校验过的服务、运行级别与配置请求。 会话仅存在于本次应用运行期间,断开后需重新打开并认证。 sudoers 对该工作程序禁用 use_pty,以保持二进制通信和 EOF 语义; 这条规则不会授予新的 sudo 权限,也不免除密码认证。

服务与运行级别

服务表显示真实 OpenRC 状态、直接加入的运行级别和可用的运行时间。 左侧提供状态及运行级别筛选,上方可搜索,单击列标题排序。 Ctrl 或 Shift 多选,工具栏提供启动、停止、重启、重载、启用与停用。

“启用/停用”对应 rc-update add/del,改变启动配置; “启动/停止”改变当前运行状态。它们是独立的操作。 批量请求按顺序执行,失败会停止后续请求,实际输出保留在“输出”页。 外部服务命令最长允许 180 秒,界面异步显示输出;取消或关闭可能留下过渡状态, 应先查看服务状态,再决定是否使用高级操作中的 zap。 zap 仅重置 OpenRC 记录,不会停止实际进程。 配置保存会完成当前原子提交,再处理取消或退出请求。

高级操作可以指定服务公布的自定义命令,选择模拟执行、条件执行、 忽略依赖或调试模式。每个参数独立传递,不拼接 shell 命令。 依赖页支持需要、使用、希望、排序及反向依赖类型。

运行级别菜单支持创建自定义级别、添加/删除成员、堆叠/取消堆叠、 删除空且未使用的自定义级别,以及切换普通运行级别。 切换时可以选择仅启动目标服务,或完整切换。 完整切换可能停止网络和桌面需要的服务;程序不直接调用 sysinit、boot、single、shutdown 或 reboot 等特殊级别。 “所有运行级别状态”显示上游 OpenRC 对堆叠和动态服务的原始解释。

配置与工具

可以编辑 /etc/conf.d/<服务> 和全局 /etc/rc.conf。 保存保留原始文本、权限与所有者,检测外部修改,先生成 .openrc-controller.bak,再原子替换并同步。 符号链接、非普通文件、不安全权限及大于 256 KiB 的配置会被拒绝。 恢复备份前同样检查冲突,恢复时把现存内容保存成新的备份; 文件已删除时,按备份的所有者和权限重建,不放宽私有文件的权限。 修改配置后是否需要重启服务由相应服务决定,程序不会隐式重启它。

工具菜单提供手动启动、未分配、崩溃及受监督服务查询,依赖缓存重建, OpenRC/启动/系统日志查看,以及诊断报告和文本导出。 日志只读取已存在的常用文件,并显示最后至多 256 KiB; 文件不存在时请检查 rc_logger 或系统日志服务配置。 工具原始输出保留 OpenRC 的术语,界面和操作提示支持中文。

构建与验证

组件为 APP_OPENRC_CONTROLLER,默认构建、打包和提供桌面入口。 使用正常 Kbuild 入口:

TMPDIR="$PWD/out/tmp" make O=out/xorg-vmware-debug PROFILE=debug -j4 app-openrc-controller nls image-vmdk
TMPDIR="$PWD/out/tmp" make O=out/xorg-vmware-debug PROFILE=debug test-openrc-controller

宿主测试在私有 user namespace 和 chroot 中运行测试命令,不操作宿主 OpenRC。 完整系统验收脚本为 tools/test_openrc_controller_qemu.py,使用私有镜像和服务夹具; 保留构建产物哈希、原始输出、截图和操作证据;默认退出私有来宾, 加 --keep-running 可继续进行手动图形界面检查。 VMware 验证未完成。