这个问题在所有扩展被禁用时是否发生?:是的
- VS Code 版本:1.87.0(以及我记得的所有之前的版本)
- OS 版本:Ubuntu 22.04.4
重现步骤:
我无法创建一个真正的最小示例,但将在这里展示我的确切用例并尝试解释它。
- 使用 frappe bench 命令
bench start
创建任务(https://github.com/frappe/bench),然后运行它 - 这会启动3个Redis服务器,一个节点服务器,一个yarn监视器和其他一些东西
- 使用任务的“杀死”按钮或关闭VSCode
bench start
已终止,但它自己生成的所有进程仍在运行- 重新打开VSCode并再次启动任务会出现错误,因为仍在运行的Redis服务器正在阻止一些必要的端口
- 即使它能工作,我们仍然会有多个资源占用的后台进程残留
在任务终端中按下CTRL-C可以优雅地关闭它,bench start
能够正确地终止所有生成的进程。我对 bench
不感兴趣,所以不能回答关于它的特定问题,但我知道它是使用 honcho
和 Procfile 来管理所有这些进程的。
所以我想问的是,是否有一种方法让任务不被强制杀死,而是像在控制台中按下CTRL-C那样对其进行操作。
这似乎描述了 launch.json
已经具有相同的功能:microsoft/vscode-js-debug#630 (评论)
7条答案
按热度按时间ncecgwcz1#
这个问题与我的问题类似,但只关注关闭按钮,而不是关闭VSCode。
$x_1e^{0f_1}x$
kqhtkvqz2#
这个功能请求现在是我们待办事项列表的候选项目。社区有60天的时间对这个问题进行投票。如果它收到20个赞成票,我们将把它移到我们的待办事项列表中。如果没有,我们将关闭它。要了解更多关于我们如何处理功能请求的信息,请参阅我们的documentation。
快乐编码!
gjmwrych3#
我同意这个观点。我猜想使用SIGKILL终止任务,因为它无法被捕获。我需要执行一些命令来清理由该任务创建的临时文件。
bxjv4tth4#
这个功能请求收到了足够多的社区投票,我们将其移动到了我们的待办事项列表中。要了解更多关于我们如何处理功能请求的信息,请参阅我们的documentation。
快乐编码!
lrpiutwd5#
太好了,我很高兴它已经解决了积压问题!
如果我可以提一个建议:
z9smfwbn6#
这对于长时间运行的任务尤其有用 - 我在使用
SIGINT
(例如:Firebase模拟器)创建需要特定端口并运行清理过程的任务时遇到了这个问题。如果我通过点击垃圾桶图标停止任务,我发现进程仍在后台继续,这意味着所需的端口仍在使用中,必须使用
lsof -I :$PORT_NUMBER
单独杀死它们,以便识别底层Java进程的ID,然后使用kill $PID
。每次需要重新启动模拟器时,都要为9个不同的端口执行此操作,这是不太理想的。😬完全同意@Mutantpenguin的观点 - 这应该是一个明确的任务基础设置。
inb24sb27#
请为这个功能添加一个选项,使其能够与SIGBREAK一起工作。我需要终止我们的构建工具,这些工具具有SIGBREAK处理程序(就像命令提示符中的Ctrl-C一样),用于清理构建并输出部分构建的数据。自从Terminate只是杀死进程以来,这对我来说一直是一个麻烦。