如何停止运行Discord Bot进程(Python)

时间:2020-03-19 04:08:00

标签: python sublimetext3 discord.py

这个不和谐的东西是我的新手。我刚刚做了一个discord.py机器人,它可以正常工作,但有时该机器人会不断重复命令消息。 我搜索了这个问题,发现可能是一遍又一遍地运行脚本(例如,在编辑或添加函数后保存并运行)。 因此,我想停止运行该进程,就像重新启动Windows一样,该bot处于脱机状态(如果在重新启动Windows之后运行脚本,则该bot会正常运行)。 请帮助

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

PD:我使机器人完全像教程一样……

4 个答案:

答案 0 :(得分:1)

结束机器人正在运行的整个脚本的一种方法是使用内置的 Python 函数 add_action( 'woocommerce_before_single_product', 'bbloomer_prev_next_product' ); function bbloomer_prev_next_product(){ echo '<div class="prev_next_buttons">'; // 'product_cat' will make sure to return next/prev from current category next_post_link('<p style="float:left;">%link</p>', '&larr; PREVIOUS', TRUE, ' ', 'product_cat'); previous_post_link('<p style="float:right;">%link</p>', 'NEXT &rarr;', TRUE,' ', 'product_cat'); echo '</div>'; } exit(),两者都做同样的事情。

quit()

通过输入 @bot.command() @commands.is_owner() async def shutdown(context): exit() 是为了只有机器人的所有者才能使用此命令。要调用此命令,请在您的 Discord 服务器中输入 @commands.is_owner()(将 /shutdown 替换为您的任何前缀)。

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

答案 1 :(得分:0)

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

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

编辑:如果您按照标签所建议的那样在sublime3中运行,则每次您要关闭机器人时,请转到“工具”,然后单击“取消构建”(热键:CTRL + Break)。一旦您运行bot的另一个实例,就可以对当前脚本进行“升华”操作,以使用新的bot进行“解耦”,并且此方法不再起作用。然后,您必须手动浏览正在运行的进程(命令行或任务管理器)并搜索任何“ Python”进程。

通常,我建议您在命令行中运行脚本,因为您可以对其进行更多控制。

答案 2 :(得分:0)

  • 如果您在此处添加我写下的代码(只有所有者可以 使用)将关闭已经在运行的漫游器(将 / shutdown写入 不协调服务器 或任何前缀)。

但是,在使用该代码保存漫游器之后,您可能需要重新启动PC。

  # in your model file
  after_save    :expire_model_all_cache
  after_destroy :expire_model_all_cache

  def expire_model_all_cache
    Rails.cache.delete("your cache name")
  end
  • 因此,每次要编辑命令时,都要编写/ shutdown并对其进行编辑,然后再重新启动。

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

答案 3 :(得分:0)

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