命令行

命令行形态与桌面端共用同一份数据目录与配置,适合无头环境、容器或脚本化运行。

命令行尚未发布

命令行形态目前未发布,也未经过人工验收:包未对外公开,「osw」也没有可供安装的分发渠道。下面写的是它已经实现的能力,现阶段只有从源码构建才能运行。日常使用请以桌面端为准。

用法

osw [命令] [选项]
命令说明
start启动服务(不写命令时的默认行为)。
stop停止由本 CLI 启动的实例。
status输出运行状态、监听地址、数据目录与版本。
version输出版本号。

选项

选项说明
--data-dir数据目录。
--host代理监听地址。
--proxy-port代理端口。
--management-port管理端口。
--web由管理服务托管控制台(默认开启)。
--no-web不托管控制台,只提供 HTTP API。
--json以 JSON 输出(仅 status)。
--help显示帮助。
--version输出版本号。

管理服务只监听本机

管理服务固定只监听 127.0.0.1:它本身没有鉴权。需要在别的机器上访问时,请走 SSH 隧道。

启动

启动后会打印控制台地址、代理地址、管理服务地址与数据目录,按 Ctrl+C 停止。

--host 会暴露无鉴权代理

代理监听在非回环地址上时,同网络的其它设备可以直接访问它,而它不带鉴权。只想本机使用,就别传 --host(默认只监听 127.0.0.1)。

状态

osw status          # 人类可读
osw status --json   # 供脚本消费

状态包含:运行中 / 未运行 / 无响应、管理服务、代理地址、控制台、数据目录、版本、PID、启动时间。

几种提示值得留意:

  • 端口没在监听:进程还在,但代理端口没有监听——服务可能启动到一半就失败了。
  • 版本漂移:运行中的实例版本与当前 CLI 版本不一致。

停止

osw stop 向实例发出退出请求并做清理。若没找到运行中的实例,会清理失效的运行时文件;若实例没开启退出握手(或那个端口上其实是别的服务),会拒绝退出请求。

冲突处理

  • 端口被占用:停掉占用进程,或用 --proxy-port / --management-port 换端口。
  • 已有实例在运行:先用 osw stop 停掉;要同时跑两个,给其中一个 --data-dir 指定另一个数据目录。

错误码与文案

命令行输出的错误是本地化的。代理运行期的错误码会在请求记录中展示,含义见常见问题。