Как отключить все сеансы отладки?

Во время разработки я часто заканчиваю несколькими живыми сеансами. PyCharm дает мне возможность закрыть все вкладки отладчика (или все другие вкладки), но для каждого сеанса в реальном времени он вызывает это диалоговое окно, и я должен щелкнуть по каждому из них, чтобы отключиться. Есть ли способ заставить PyCharm автоматически отключать и завершать все процессы?

enter image description here

Ответ 1

Возможно, лучший ответ на этот вопрос - не начинать все эти сеансы в первую очередь. Если то, что вы действительно хотите сделать, это убить существующий сеанс при запуске отладчика, установить параметр "Только один экземпляр" в диалоговом окне "Запуск/Отладка конфигурации".

enter image description here

Затем каждый раз, когда вы нажимаете значок отладки (или 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.

Ответ 2

Я столкнулся с этой проблемой при использовании PyCharm в первый раз. Я предположил неправильно, что каждый раз, когда я запускал отладчик, я убивал любой существующий запуск и запускал новый. Я не обнаружил очевидного пути в графическом интерфейсе, чтобы убить все процессы python с открытыми соединениями отладчика, поэтому я просто сделал это в терминале следующим образом:

  • Найдите процессы, которые вы отлаживаете. В моем случае у меня было более 100 процессов, прежде чем я понял, что происходит. Просто следите за ним, чтобы обеспечить правильность.

    ps ux | grep my_script_name | grep -v grep
    
  • Отправьте список PID на kill (если PID - столбец 2 в вашем выпуске ps):

    kill -9 `ps ux | grep my_script_name | grep -v grep | awk '{print $2}'`
    
  • Попробуйте закрыть вкладки в PyCharm. Соединения отладчика закрыты, поэтому он не будет жаловаться.