V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Features
V2EX  ›  Node.js

关于 powershell 执行 node 程序假死

  •  
  •   Features · 2023-11-14 15:01:44 +08:00 · 1250 次点击
    这是一个创建于 404 天前的主题,其中的信息可能已经有所发展或是发生改变。
    问题描述:
    Powershell 在执行一个 node 程序时,有一定概率假死
    正常执行的程序会每分钟在控制台打印一个字符串
    假死的程序不会打印

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

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

    或者输入到文件 > log.txt

    也有可能是进入编辑模式了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2932 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 13:37 · PVG 21:37 · LAX 05:37 · JFK 08:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.