运行代码文件
运行代码
✍在本篇内容中你将学习到如何运行代码文件这一基础功能。看上去内容很多?其实非常简单。
需要特别说明的是,代码文件是各编程语言程序文件的统称,并非所有代码文件都属于脚本类型。
❖ Arcadia CLI - 运行代码文件
使用方法:
arcadia run <name/path/url> [--options]
命令选项:
-l, --loop 循环运行 - 连续多次的执行代码文件,选项后需跟循环次数
-s, --silent 静默运行 - 不推送任何通知消息
-w, --wait 推迟执行 - 等待指定时间后再运行任务,选项后需跟时间值
-D, --delay 延迟执行 - 随机倒数一定秒数后再执行代码文件
-a, --agent 网络代理 - 为 JavaScript 和 TypeScript 代码文件启用全局 HTTP/HTTPS 代理,配置方法详见文档
-T, --timeout 运行超时 - 设置运行任务超时机制,选项后需跟 timeout 指令的参数作为选项值
-N, --no-log 不记录日志 - 不存储代码运行日志到本地
-p, --proxy 启用下载代理 - 仅适用于执行位于 GitHub 仓库的代码文件,代理固定为 jsDelivr CDN
-c, --concurrent 并发运行 - 默认运行1个任务,若想增加运行任务数量那么请传参任务数量
-t, --thread 并发线程数 - 指定同时运行的最大任务数量,选项后需跟正整数,需与并发运行同时使用
-b, --background 后台运行 - 不在前台输出代码执行进度,不占用终端命令行
-r, --recombine-env 变量重组 - 按照指定顺序重新组合复合变量的值,选项后需跟变量名称、分隔符、重组表达式
ㅤ 表达式语法:多个值用 "," 隔开,值区间用 "-" 连接,可以用 "%" 表示值的总数
-R, --recombine-env-group 分组运行 - 为每组变量单独运行,是变量重组的扩展,传参基本一致,其中重组表达式内用 "@" 来区分不同组
-S, --split-env 拆分运行 - 将复合变量的值拆分后为每个值声明变量并单独运行代码文件,选项后需跟需要拆分的变量名称、分隔符
-E, --exec-args 执行参数 - 将该选项后面的内容作为参数传递给代码执行器
-- 传递选项 - 将该选项后面的所有内容都作为选项参数传递给代码文件
--deno,--use-deno 使用 Deno 运行时
--bun,--use-bun 使用 Bun 运行时
--node,--use-node 使用 Node.js 运行时
--tsx,--use-tsx 使用 tsx 执行
--ts-node,--use-ts-node 使用 ts-node 执行
命令帮助:
<name> 文件名(仅scripts目录) <path> 相对路径或绝对路径 <url> 链接地址 [--options] 命令选项使用方法
arcadia run <name/path/url> [--options]文件名称 name
仅限 scripts 个人目录下的代码文件,并且仅涵盖 根目录,你可以把你常用的脚本存放在这里
路径 path
相对路径或绝对路径,支持使用 . 或 ./ 作为当前目录和用 ../ 作为上级目录,如果运行本地的个人代码文件则可以省略路径
如果运行的是已配置的代码仓库中的代码文件可以使用相对路径,例如 /arcadia/repo/<仓库目录名称>/example.js 可以使用 repo/example.js 替代
链接地址 <url>
运行后代码文件默认保存在 scripts 个人目录,支持链接自动纠正功能
链接自动纠正功能是当拉取位于远程托管仓库的代码文件时可自动将 blob 链接转换为 raw 原始文件链接,此功能已应用到整个项目
命令选项 [--options]
用于实现一些扩展功能,具体请查看下方的文档内容
基础概念
命令选项
使用方法:追加在命令的末尾,熟练后可以使用简写
一个高级的应用程序CLI指令往往有着复杂的命令选项设计,这可能是一个漫长的学习过程~
| 选项 | 用途 | 选项值 | 描述 |
|---|---|---|---|
-l, --loop | 循环运行 | 是 | 连续多次运行代码文件,选项后需跟 循环次数(正整数),该选项与 等待执行 和 延迟执行 参数同时使用时仍然有效互不干涉 |
-s, --silent | 静默运行 | 否 | 静默运行任务不推送任何通知消息 |
-w, --wait | 推迟执行 | 是 | 等待指定时间后再运行代码文件,选项后需跟 等待时间单位 作为参数值,具体参照 sleep 命令的用法 |
-D, --delay | 延迟执行 | 否 | 随机倒数一定秒数后再运行代码文件,该秒数上限可以在配置文件中定义 |
-a, --agent | 网络代理 | 否 | 为 JavaScript 和 TypeScript 代码文件启用全局 HTTP/HTTPS 代理,使用方法详见下方说明 |
-T, --timeout | 运行超时 | 是 | 设置运行任务超时机制,选项后需跟 timeout 指令的参数作为选项值 |
-N, --no-log | 不记录日志 | 否 | 不存储代码运行日志到本地 |
-p, --proxy | 启用下载代理 | 否 | 仅适用于执行位于 GitHub 仓库的代码文件,该代理固定为 jsDelivr 公共 CDN 加速代理 |
-c, --concurrent | 并发运行 | 否 | 默认运行1个任务,若想增加运行任务数量那么请传参 任务数量(正整数) |
-t, --thread | 指定并发线程 | 是 | 指定同时运行的最大任务数量,选项后需跟正整数,需与并发运行同时使用 |
-b, --background | 后台运行 | 否 | 不在前台输出代码执行进度,不占用终端命令行 |
-r, --recombine-env | 变量重组 | 是 | 按照指定顺序重新组合复合变量的成员值,选项后需跟变量名称、分隔符、重组表达式。表达式语法:多个值用 , 隔开,值区间用 - 连接,可以用 % 表示值的总数 |
-R, --recombine-env-group | 分组运行 | 是 | 基于变量重组功能上的扩展应用,为每组变量单独运行代码文件,传参与变量重组功能基本一致,其中重组表达式内用 @ 来区分不同组 |
-S, --split-env | 拆分运行 | 是 | 将复合变量的成员值拆分后为每个值声明变量并单独运行代码文件,选项后需跟需要拆分的变量名称、分隔符 |
-E, --exec-args | 执行参数 | 是 | 将该选项后面的内容作为参数传递给代码执行器 |
-- | 传递选项 | 是 | 将该选项后面的所有内容都作为选项参数传递给代码文件 |
--deno, --use-deno | Deno | 否 | 使用 Deno 运行时 |
--bun, --use-bun | Bun | 否 | 使用 Bun 运行时 |
--node, --use-node | Node.js | 否 | 使用 Node.js 运行时 |
--ts-tsx, --use-tsx | TypeScript Execute (tsx) | 否 | 使用 tsx 执行 |
--ts-node, --use-ts-node | ts-node | 否 | 使用 ts-node 执行 |
终止运行
arcadia stop <name/path>终止某个或某些正在运行中的代码程序,根据代码文件名称搜索对应的进程并立即杀死,支持终止多进程任务
<name> 文件名(仅scripts目录)
<path> 相对路径或绝对路径
守护进程
什么是守护进程?
守护进程是可以周期运行的特殊进程,在这里指的是将代码文件设置为后台进程循环运行,当代码文件运行结束或中断时会自动重新运行,适用于需要长期连续运行的代码文件。
针对同一个代码文件只可存在一个守护进程,这就意味着当即将被运行的代码文件存在多个任务时不允许设置守护进程。
使用提示
该命令目前仅用于任务启动,请优先通过控制面板进行持久化管理,否则手动在终端命令行启动的任务将无法在控制面板中显示。
守护进程模式使用独立的 rund 子命令,通过 PM2 将代码文件保持在后台持续运行,进程退出或崩溃后会自动重新拉起。
❖ Arcadia CLI - 运行代码文件(守护进程)
使用方法:
arcadia rund <name/path> [--options]
专属命令选项:
--name 指定任务名称
--max-restarts 指定最大重启次数
--restart-delay 指定重启延迟毫秒数
--log-file 指定日志文件路径
--restart-cron 指定重启计划任务
--no-autorestart 禁用进程崩溃后的自动重启
--max-memory-restart 内存超出指定值时自动重启(例如 200M)
--stop-exit-codes 指定不触发自动重启的退出码
--exp-backoff-restart-delay 启用指数退避重启,指定初始延迟毫秒数
通用命令选项:
-s, --silent 静默运行 - 不推送任何通知消息
-a, --agent 网络代理 - 为 JavaScript 和 TypeScript 代码文件启用全局 HTTP/HTTPS 代理,配置方法详见文档
-r, --recombine-env 变量重组 - 按照指定顺序重新组合复合变量的值,选项后需跟变量名称、分隔符、重组表达式
表达式语法:多个值用 "," 隔开,值区间用 "-" 连接,可以用 "%" 表示值的总数
-E, --exec-args 执行参数 - 将该选项后面的内容作为参数传递给代码执行器
-- 传递选项,将该选项后面的所有内容都作为选项参数传递给代码文件
--deno,--use-deno 使用 Deno 运行时
--bun,--use-bun 使用 Bun 运行时
--node,--use-node 使用 Node.js 运行时
--tsx,--use-tsx 使用 tsx 执行
--ts-node,--use-ts-node 使用 ts-node 执行
命令帮助:
<name> 文件名(仅scripts目录) <path> 相对路径或绝对路径 [--options] 命令选项支持部分通用命令选项,同时提供下列守护进程专属命令选项
| 选项 | 选项值 | 描述 |
|---|---|---|
--name | 是 | 指定 PM2 进程名称,默认使用代码文件名 |
--max-restarts | 是 | 最大自动重启次数(非负整数),默认无限制 |
--restart-delay | 是 | 崩溃后重启延迟毫秒数(非负整数),默认 0 |
--log-file | 是 | 日志文件完整路径,未指定时使用项目默认日志目录 |
--restart-cron | 是 | 定时重启 Cron 表达式,为空则不启用 |
--no-autorestart | 否 | 禁用崩溃自动重启,进程退出后不再重新拉起 |
--max-memory-restart | 是 | 内存超限自动重启阈值(如 200M),默认不启用 |
--stop-exit-codes | 是 | 遇到指定退出码时停止重启(非负整数,如 0) |
--exp-backoff-restart-delay | 是 | 启用指数退避重启策略,指定初始延迟毫秒数(非负整数) |
管理方法
- 查看有哪些守护进程正在运行
pm2 list - 停止运行
pm2 stop <任务名> - 删除任务
pm2 delete <任务名>
默认存在二个项目内置的服务 arcadia_server tgbot,请不要删除它们其中的任何一个

