You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Python机器人代码设置崩溃时的警报或蜂鸣提醒?

Python机器人进程崩溃时触发警报的实现方法

一、代码内部捕获异常触发蜂鸣

直接在代码里加全局异常处理,不管是语法错误还是运行时异常,只要未被捕获,就触发蜂鸣再退出。

方法1:用try-except包裹主逻辑

把机器人的主循环包在try块里,所有未处理的异常都会进入except分支:

import winsound  # Windows平台直接用,无需额外安装
# 跨平台可选:先pip install playsound,用playsound播放音频文件
from playsound import playsound
import traceback

def trigger_alert():
    # Windows蜂鸣:频率1000Hz,持续2秒
    winsound.Beep(1000, 2000)
    # 跨平台替代方案:播放本地音频文件
    # playsound("alert.wav")

if __name__ == "__main__":
    try:
        # 这里写你的机器人主循环代码
        while True:
            # 机器人业务逻辑
            pass
    except Exception as e:
        # 先打印异常信息,方便后续排查问题
        traceback.print_exc()
        # 触发警报
        trigger_alert()
        # 重新抛出异常,不掩盖崩溃原因
        raise

方法2:全局异常钩子(适合多线程/复杂场景)

用sys.excepthook捕获所有未处理的异常,哪怕是多线程里的异常也能覆盖:

import sys
import winsound
import traceback

def crash_alert_hook(exc_type, exc_value, exc_traceback):
    # 打印完整异常栈
    traceback.print_exception(exc_type, exc_value, exc_traceback)
    # 触发蜂鸣
    winsound.Beep(1000, 2000)
    # 调用系统默认的异常处理流程
    sys.__excepthook__(exc_type, exc_value, exc_traceback)

# 替换默认的异常钩子
sys.excepthook = crash_alert_hook

# 机器人主逻辑
while True:
    # 业务代码
    pass

二、外部工具监控(无需修改代码)

如果担心代码崩溃到连蜂鸣逻辑都执行不了,或者不想改原有代码,可以用外部工具监控进程:

  • Windows任务计划程序:

    1. 创建新任务,触发器选「特定进程终止时」,选择你的Python进程(比如python.exe,或者指定脚本名)
    2. 操作设置为「启动程序」,可以选一个能播放警报的脚本(比如写个bat脚本调用winsound,或者单独的Python蜂鸣脚本)
  • Linux/macOS Shell监控脚本:
    写个简单的后台脚本,每隔几秒检查进程是否存活,不存在就触发警报:

#!/bin/bash
# 替换成你的机器人脚本名,比如robot.py
TARGET_PROCESS="robot.py"

while true; do
    # 检查进程是否存在
    if ! pgrep -f "$TARGET_PROCESS" > /dev/null; then
        # Linux下先装beep:sudo apt install beep
        beep -f 1000 -l 2000
        # 同时发桌面通知
        notify-send "机器人进程崩溃了!"
        # 退出监控循环,或者注释掉break一直监控(进程重启后继续)
        break
    fi
    sleep 5
done
  • 专业进程监控工具:
    Linux可以用monit或supervisor,Windows可以用Process Monitor,这些工具能配置进程崩溃时自动执行自定义命令(比如蜂鸣、重启进程、发通知)

三、其他提醒方式

除了蜂鸣,还可以用这些更醒目的方式:

  • 桌面通知:Windows用win10toast库,Linux用notify-send,macOS用pync库
  • 邮件/短信通知:调用SMTP接口发邮件,或者用第三方短信API,适合不在电脑旁的场景
  • 弹窗提示:用tkinter写个简单的弹窗,崩溃时弹出红色醒目提示框

内容的提问来源于stack exchange,提问作者dzdsds

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 14:58:28