> ## Documentation Index
> Fetch the complete documentation index at: https://oom-wg.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# 执行模块 action.sh 并返回输出



## OpenAPI

````yaml /apis/ssu/openapi.yml post /modules/id/{mid}/action
openapi: 3.1.0
info:
  title: ShiroSU HTTP 接口
  version: 1.0.0
  description: |
    `suu man --server` 运行服务所提供的 HTTP 接口

    所有 HTTP 和 WebSocket 路由均以 `/api/v1/superuser` 作为根路径

    所有 HTTP 请求都通过 `Authorization` 请求头校验，
    所有 WebSocket 连接通过 `ws` 查询参数校验，临时一次性票证由 HTTP 请求 `POST /ws` 获取

    所有路径除了部分 `PUT`/`DELETE` 方法之外，任何请求都不会返回 `404`，
    返回 `404` 即说明请求的路径不存在也就是功能不支持/版本过时
servers:
  - url: http://{host}:{port}/api/v1/superuser
    description: ShiroSU 后端的本地或局域网地址
    variables:
      host:
        default: 127.0.0.1
      port:
        default: '5355'
security:
  - bearerAuth: []
tags:
  - name: WebSocket
  - name: 状态
  - name: 配置
  - name: 系统
  - name: 主题
  - name: 软件包
  - name: 模块
paths:
  /modules/id/{mid}/action:
    post:
      tags:
        - 模块
      summary: 执行模块 action.sh 并返回输出
      operationId: runModuleAction
      parameters:
        - $ref: '#/components/parameters/ModuleId'
      responses:
        '200':
          description: 输出消息列表
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/WsioMessage'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          description: 模块不存在
        '410':
          description: 模块系统未安装或模块没有 `action.sh`
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  parameters:
    ModuleId:
      name: mid
      in: path
      required: true
      description: 模块 ID
      schema:
        type: string
  schemas:
    WsioMessage:
      oneOf:
        - type: object
          required:
            - type
          properties:
            type:
              type: string
              const: stdio
            stdout:
              type: string
            stderr:
              type: string
        - type: object
          required:
            - type
          properties:
            type:
              type: string
              const: exit
            code:
              type: integer
              description: 进程退出码或安装前置错误的 HTTP 状态码
            signal:
              type: integer
  responses:
    Forbidden:
      description: 鉴权失败，或 WebSocket 票证无效
    InternalServerError:
      description: 后端执行操作失败
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: |
        后端管理密码

        同时支持 `Authorization: Bearer <password>` 和 `Authorization: <password>`

````