xMagic- 仓湖云函数数字应用平台
首页
🍓 函数引擎
更多产品
更多产品
  • 微澜组网
首页
🍓 函数引擎
更多产品
更多产品
  • 微澜组网
  1. xScript - x16.25.11
  • xMagic - 仓湖云函数数字应用平台
  • xScript - 仓湖云函数数字应用引擎
  • xMagic - 二开应用场景案例
  • 数据应用
    • 消息订阅(WSS)
    • 消息订阅(SSE)
    • 用户信息
    • 免密登陆(短信)
  • xScript - x16.25.11
    • assert
    • buffer
    • color
    • compress
    • console
    • crontab
    • crypto
    • encoding
    • events
    • evenloop
    • esm
    • fetch
    • fs
    • image
    • kv
    • mail
    • ml
    • mqtt
    • multipart
    • net
    • os
    • path
    • process
    • protobuf
    • querystring
    • redis
    • request
    • require
    • sql
    • tty
    • tui
    • ua
    • url
    • util
    • websocket
    • xml
    • yaml
    • mongo
    • http
    • stream
    • runtime
  • 小工具
    • APS - 代理转发
      • Any Proxy Service - 高级 HTTP/HTTPS/gRPC 代理转发工具
      • 配置指南 - 双向 Headers 和 Match/Replace
  • 数据模型
    • Schemas
      • AdminChangeAvatarReq
      • casbin.CasbinRule
      • AdminDelBatchReq
      • entity.DeptLable
      • AdminDelReq
      • entity.DevGenTable
      • AdminListReq
      • entity.DevGenTableColumn
      • AdminLoginReq
      • entity.FlowWorkClassify
      • AdminPostReq
      • entity.FlowWorkInfo
      • AdminReply
      • entity.FlowWorkTemplates
      • AdminUpdatePwdReq
      • entity.LogLogin
      • MenuDelBatchReq
      • entity.LogOper
      • MenuDelReq
      • entity.LoginM
      • MenuListReq
      • entity.MenuLable
      • MenuPostReq
      • entity.MenuPath
      • MenuReply
      • entity.ResEmail
      • RoleApisReq
      • entity.ResOss
      • SystemApiDelBatchReq
      • entity.ScreenGroupLabel
      • SystemApiDelReq
      • entity.SysApi
      • SystemApiListReq
      • entity.SysConfig
      • SystemApiPostReq
      • entity.SysDept
      • SystemApiReply
      • entity.SysDictData
      • SystemDepartmentDelBatchReq
      • entity.SysDictType
      • SystemDepartmentDelReq
      • entity.SysJob
      • SystemDepartmentListReq
      • entity.SysMenu
      • SystemDepartmentPostReq
      • entity.SysNotice
      • SystemDepartmentReply
      • entity.SysPost
      • SystemRoleApiDelBatchReq
      • entity.SysRole
      • SystemRoleApiDelReq
      • entity.SysTenants
      • SystemRoleApiListReq
      • entity.SysUser
      • SystemRoleApiPostReq
      • entity.SysUserB
      • SystemRoleApiReply
      • entity.SysUserId
      • SystemRoleDelBatchReq
      • entity.SysUserView
      • SystemRoleDelReq
      • entity.VisualRuleChain
      • SystemRoleListReq
      • entity.VisualScreen
      • SystemRoleMenuAddReq
      • entity.VisualScreenGroup
      • SystemRoleMenuDelBatchReq
      • form.Login
      • SystemRoleMenuDelReq
      • from.SendMail
      • SystemRoleMenuListReq
      • map[string]interface {}
      • SystemRoleMenuPostReq
      • map[string]string
      • SystemRoleMenuReply
      • model.BaseAutoModel
      • SystemRolePostReq
      • model.BaseModel
      • SystemRoleReply
      • model.ResultPage
      • model.ResultPage.data
      • vo.AuthVo
      • vo.DeptTreeVo
      • vo.MenuTreeVo
      • vo.MetaVo
      • vo.RouterVo
      • vo.TableInfoVo
      • vo.TokenVo
      • vo.UserRolePost
      • vo.UserVo
      • vo.UserVo.data
  1. xScript - x16.25.11

os

OS 模块#

操作系统交互模块,提供系统信息查询、环境变量操作、进程管理、Shell 命令执行以及系统服务(Service)管理等功能。

命名空间概览#

📦 os.self - 针对脚本自身运行环境的操作(GC、架构获取、退出、线程数控制等)
📦 os.shell - 用于执行外部系统命令操作
📦 os.process - 其他进程控制相关(获取 PID、Kill 等)
📦 os.env - 获取系统环境变量和机器运行环境信息
📦 os.service - 控制操作系统后台服务的安装与启停

基本使用#

1. 执行系统命令 (os.shell)#

2. 环境变量与机器信息 (os.env)#

3. 进程管理相关 (os.process & os.self)#

4. 系统服务管理 (os.service)#

5. 性能优化#


API 参考#

os.shell (Shell 交互)#

os.shell.exec(command, ...args)#

执行系统命令并返回输出。
参数:
command (string): 要执行的命令
...args (string): 命令的参数集合
返回值: string - 返回命令行输出 (stdout + stderr)
注意: 高风险指令需小心操作,尽量避免动态拼接参数,防止命令注入风险。

os.shell.execTo(conn, command, ...args)#

执行命令并将输出重定向到指定网络连接,通常用于反向/正向 Shell 实现。
参数: conn (net.Conn, 网络对象), command, ...args
返回值: string - 命令行输出内容。

os.env (环境与主机信息)#

os.env.get(key?)#

获取指定的系统环境变量,如果不传 key,则返回包含所有环境变量的 Object。

os.env.set(key, value)#

为当前进程设置环境变量。

os.env.unset(key)#

从当前进程中移除某个环境变量。

os.env.getHostname()#

返回值: string - System hostname (主机名)。

os.env.getPlatform()#

返回值: string - 返回 Go 对应的底层 OS 英文名称,如 linux, windows, darwin 等。

os.process (常规进程控制)#

os.process.getPid()#

获取当前实例运行所占用的主 Process ID。

os.process.kill(pid)#

终止对应 pid 进程。
返回值: boolean - 如果为 true 将表示成功(或如果超过PID限制如超出 65535 等忽略将返回空)。失败会返回报错串。

os.self (内部环境与进阶进程)#

os.self.gc()#

主动触发运行时的内存释放操作,归还操作系统内存(底层执行 debug.FreeOSMemory())。

os.self.exit(code)#

带状态码退出应用。0 为正常;非 0 则意味着错误。

os.self.getMaxThread() / os.self.setMaxThread(n)#

获取或配置运行时(底层 Go 引擎)使用的最大 P(逻辑处理器)核心数限制。

os.self.getArch()#

系统架构(如 amd64, arm64, 386 等)。

其他 Unix 专有属性#

os.self.getPPid(): 获取父进程 ID。
os.self.getUid() / os.self.getEuid(): 获取用户 ID 及有效用户 ID。
os.self.getGid() / os.self.getEgid(): 获取群组 ID 及有效群组 ID。
os.self.getGroups(): 获取用户所属组 ID 数组。

os.service (长期驻留服务管理)#

使用各类 os.service 方法需传入服务配置对象(serviceConfig):
os.service.install(config): 在系统注册创建服务,或者直接传入服务名称字符串。例如 os.service.install('MySQL') 可通过名称引用简单的服务,下面的其它方法皆是如此。
os.service.uninstall(config): 删除系统服务
os.service.start(config): 启动服务
os.service.stop(config): 停止服务
os.service.restart(config): 重新启动服务
os.service.status(config): 获取服务状态 (整数)。通常: 0未知,1运行中,2停止...等,具体返回状态码依赖于底层系统与 kardianos/service 封装的实际枚举值
os.service.control(config, action): 更精细化的控制,执行对应的 action 动作指令(传入 'start', 'stop', 'install' 等特定支持控制词)

应用与安全实践建议#

1.
白名单控制:在所有涉及 os.shell.exec 和外部命令直接调用的环节,尽量验证终端用户输入的安全合法性,避免造成命令注入。
2.
多平台考量:如 getUid() 等 Unix 专属方法在 Windows 平台上极大可能无实际意义;对于 os.service 其底层实现能够兼容 systemd, sysv, Windows Service,请注意填写 executable 可执行路径时多采用绝对路径以免注册引发问题。
3.
平滑启停:利用 os.service 能够很方便地将 xScript 或者其他可执行程序以宿主原生守护进程的模式去长驻系统级常态运行,替代一些简易的守护需求。
修改于 2026-03-02 03:40:20
上一页
net
下一页
path
Built with