繁体   English   中英

如何停止运行discord bot进程(python)

[英]How to stop running discord bot process (python)

我是这个 discord.py 的新手。 我刚刚做了一个 discord.py 机器人,它工作正常,但有时机器人会不断重复命令消息。 我在谷歌上搜索了这个问题,发现可能是为了一遍又一遍地运行脚本(比如在编辑或添加功能后保存和运行时)。 所以我想停止运行这个进程,就像我重新启动windows时,bot离线(如果我在重新启动windows后运行脚本,bot正常运行)。 请帮忙

如果有人需要代码,我可以将其粘贴到此处。

PD:我把机器人做成了一个教程......

此消息确实不是 discord.py 特定的,并且适用于不确定运行的每个脚本。

您正在运行机器人的多个实例。 如果您在 IDE 环境中运行它,那么某处应该有一个停止按钮。 如果您在控制台中运行它,关闭控制台窗口将关闭机器人。

编辑:如果您像标签建议的那样在 sublime3 中运行它,每次要关闭机器人时,请转到“工具”,然后转到“取消构建”(热键:CTRL + Break)。 一旦您运行机器人的另一个实例,sublime 就会“解耦”当前脚本以支持新脚本,并且此方法不再起作用。 然后您必须手动检查正在运行的进程(命令行或任务管理器)并搜索任何“Python”进程。

一般来说,我建议在命令行中运行脚本,因为您可以更好地控制它。

  • 如果你添加我在那里写的代码(只有所有者可以使用)将关闭已经运行的机器人(在不和谐服务器中写入/shutdown或任何你的前缀)。

但是,使用此代码保存机器人后,您可能需要重新启动 PC。

@client.command()
@commands.is_owner()
async def shutdown(ctx):
    await ctx.bot.logout()
  • 所以每次如果你想编辑你的命令,你写 /shutdown 并编辑它,之后,你可以再次启动它。

我希望这对您有用,并且我可以提供帮助。

结束机器人正在运行的整个脚本的一种方法是使用内置的 Python 函数exit()quit()都做同样的事情。

@bot.command()
@commands.is_owner()
async def shutdown(context):
    exit()

通过放置@commands.is_owner()您正在制作它,以便只有机器人的所有者才能使用此命令。 要调用此命令,请在您的 Discord 服务器中输入/shutdown (将/替换为您的任何前缀)。

它引发了一堆错误,但总体上结束了程序,因此最终它可能不是最有效的方法,但它可以完成工作。

解决这个问题的简单方法是重新生成您的机器人令牌。 这样做将关闭所有活动脚本。 对于不熟悉 Discord API 的任何人,如果您收到“拒绝访问”这样的错误消息,此解决方案也应该对您有所帮助。

只需在 Visual Studio 代码输出终端中输入exit ,您的机器人就会断开连接。 享受这一天

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM