VSCode中调试Python Telegram Bot无法终止进程的问题求助
解决Telegram Bot进程残留导致的409/401错误及强制终止方法
一、强制终止残留进程
Windows系统
- 按
Ctrl+Shift+Esc打开任务管理器,切换到「详细信息」标签 - 找到所有
python.exe或pythonw.exe进程,右键选择「结束任务」 - 若不确定目标进程,打开命令提示符执行:
记下对应进程ID(PID)后,用命令强制终止:tasklist | findstr pythontaskkill /F /PID <进程ID>
macOS/Linux系统
- 打开终端,先查找相关Python进程:
ps aux | grep python - 找到对应Bot的进程(可通过启动路径或命令参数判断),用进程ID终止:
kill -9 <进程ID> - 若需批量终止所有Python进程(谨慎使用,会终止其他正在运行的Python程序):
pkill -9 python3
二、避免进程残留的预防措施
- 不要直接点击VSCode的停止按钮,给代码添加优雅退出逻辑,监听中断信号并让Bot停止轮询:
import telebot import signal import sys bot = telebot.TeleBot("你的BotToken") def stop_bot(sig, frame): print("正在关闭Bot...") bot.stop_polling() sys.exit(0) # 绑定中断信号 signal.signal(signal.SIGINT, stop_bot) signal.signal(signal.SIGTERM, stop_bot) # 你的Bot业务逻辑代码 bot.infinity_polling() - 调试时使用VSCode的「调试控制台」按
Ctrl+C发送中断信号,让Bot正常停止轮询,而非直接点击停止按钮
三、关于401错误的说明
你遇到的401未授权错误,确实是旧Token的残留进程持续向Telegram API发送请求导致的。彻底终止旧进程后,该错误会自动消失,无需频繁向BotFather申请新Token。
内容的提问来源于stack exchange,提问作者Nox
相关产品推荐
相关产品推荐

