关于 powershell 执行 node 程序假死

2023-11-14 15:01:44 +08:00
 Features
问题描述:
Powershell 在执行一个 node 程序时,有一定概率假死
正常执行的程序会每分钟在控制台打印一个字符串
假死的程序不会打印

但是在 CTRL + C 退出控制台的时候,会打印输出最近应该输出的字符串

这种是 node 程序的问题还是 Powershell 的问题?
1212 次点击
所在节点    Node.js
4 条回复
ZTxc
2023-11-14 15:09:38 +08:00
看下是不是快速编辑模式的原因,右键 Powershell 属性--》选项--》取消勾选快速编辑模式
rayae
2023-11-14 17:50:00 +08:00
应该是缓冲区刷新的问题,需要类似 flush(stdout)的操作。比如 python 执行脚本时,不加-u 参数的话,控制台输出就不会实时刷新
rayae
2023-11-14 17:52:09 +08:00
问了下 GPT:使用 -NoBuffering 参数:在 PowerShell 中,您可以尝试使用 Start-Process 命令的 -NoNewWindow 和 -NoBuffering 参数来运行 Node.js 命令。
mmdsun
2023-11-14 22:28:33 +08:00
关闭输出 > NUL

或者输入到文件 > log.txt

也有可能是进入编辑模式了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/991827

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX