在开发过程中,我经常会遇到多个实时会话。 PyCharm为我提供了一个关闭所有调试器选项卡(或所有其他选项卡)的选项,但是对于每个实时会话,它会打开此对话框,我必须单击每个选项卡才能断开连接。有没有办法让PyCharm自动断开连接并终止所有进程?
答案 0 :(得分:22)
问题的最佳答案可能是首先不要开始所有这些会议。如果您真正想要做的是在启动调试器时终止现有会话,请在“运行/调试配置”对话框中设置“仅实例”选项。
然后每次单击调试图标(或Shift + F9)时,它将停止当前会话并启动一个新会话。在我弄清楚这是做什么之前,即使我不再对它们感兴趣,我最终还会继续运行一些会话。
PyCharm帮助说了以下内容,但根据我的经验,选中此选项后,重新启动调试器只会终止当前实例并启动一个新实例。当你不想运行一堆旧实例时,这很有用,但是在构建Django应用程序时你不希望多个实例同时运行。
If this check box is selected, this run/debug configuration cannot be launched more
than once.
Every time a new run/debug configuration is launched, PyCharm checks the presence of
the other instances of the same run/debug configuration, and displays a confirmation
dialog box. If you click OK in the confirmation dialog box, the first instance of
the runner will be stopped, and the next one will take its place.
This make sense, when usage of certain resources can cause conflicts, or when
launching two run/debug configurations of the same type consumes too much of the CPU
and memory resources. If this check box is not selected, it is possible to launch as
many instances of the runner as required. So doing, each runner will start in its own
tab of the Run tool window.
答案 1 :(得分:2)
我第一次使用PyCharm时遇到了这个问题。我错误地认为每次运行调试器时,我都会杀死任何现有的运行并启动一个新运行。我发现在GUI中没有明显的方法可以通过打开调试器连接来终止所有python进程,所以我只是在终端中执行了如下操作:
找到您正在调试的进程。就我而言,在我意识到发生了什么之前,我有超过100个进程。请注意它以确保正确性。
ps ux | grep my_script_name | grep -v grep
将您的PID列表发送到kill
(假设PID是ps输出中的第2列):
kill -9 `ps ux | grep my_script_name | grep -v grep | awk '{print $2}'`
尝试关闭PyCharm中的标签页。调试器连接已关闭,因此不会抱怨。