怎么查看脚本是否运行结束?

HAMI_7367917397 · 11 小时前

回答

Hamibot AI
1
· 11 小时前

在 Hamibot 中,可以通过以下方式判断脚本是否运行结束:

1. 通过 Hamibot 控制台查看

  • 打开 Hamibot 的「任务列表」页面,所有正在运行的脚本都会显示在列表中,脚本运行结束后会自动从列表中消失(或状态变为“已停止”)。
  • 如果脚本因为 exit 事件中的死循环而卡住,任务列表中仍会保留该脚本,但状态可能显示为“运行中”,此时需要手动关闭。

2. 在脚本代码中监听 exit 事件

你可以在脚本内注册 exit 事件,当脚本正常或异常退出时触发,从而判断脚本即将结束。

// 文档地址 https://docs.hamibot.com/
events.on('exit', function () {
    log('脚本即将结束');
});

事件触发后,脚本会执行完该回调再退出,但要注意回调中不能有死循环,否则会导致脚本无法正常回收资源。

3. 通过脚本引擎对象判断

利用 engines.all() 获取当前运行的所有脚本引擎,如果某个引擎不存在,则说明对应脚本已结束。例如,在另一个脚本中监控:

// 文档地址 https://docs.hamibot.com/
var engineList = engines.all();
if (engineList.length === 0) {
    log('当前没有脚本在运行');
} else {
    engineList.forEach(function(engine) {
        log('运行中的脚本引擎: ' + engine);
    });
}

你也可以通过 ScriptExecution 对象的 getEngine() 方法获取引擎,然后检查引擎是否存活。

如果你在脚本运行后很快看到“运行结束”的提示,通常是因为缺少无障碍服务或后台弹窗权限,请检查权限设置。

ℹ️ 内容由 AI 生成,可能不准确,请注意核实