【问题标题】:How to use SIGUSR1 with node.js on Windows如何在 Windows 上将 SIGUSR1 与 node.js 一起使用
【发布时间】:2017-08-31 07:49:17
【问题描述】:

我在 Windows 上使用 git bash 来运行命令。

In the doc 在调试时他们说:

如果进程在没有 --inspect 的情况下启动,则使用 SIGUSR1 向它发出信号 激活调试器并打印连接 URL。

我试过这样做:

$ node index.js
server is listening on 3000

$ ps
      PID    COMMAND
    16348   /c/Program Files/nodejs/node

$ kill -s SIGUSR1 16348

但随后进程停止而不是打印连接 URL:

$ node index.js
server is listening on 3000
User defined signal 1

【问题讨论】:

  • 您使用的是哪个版本的 Node?我用 v6 和 v8 进行了测试,在这两种情况下都启动了调试器(尽管我使用的是 macOS,看起来你使用的是 Windows)。
  • @robertklep,谢谢,我正在使用 V8。是的,我通过 git bash 在 Windows 上。你能显示你执行的命令吗?
  • 我正在使用与您完全相同的命令,但看起来 SIGUSR1 仅适用于 UNIX。似乎有一个未记录的命令可用于在 Windows 上启动调试器:node -e "process._debugProcess(PID)"(其中PID 是您要为其启动调试器的进程的进程 ID)。看到这个问题:stackoverflow.com/questions/35735020/…
  • @AlexBlex 问题不是发送(正确)信号,进程退出并告诉它接收到“用户定义的信号1”(又名SIGUSR1)。问题是调试器没有启动,这与文档所述(以及在类 UNIX 操作系统上实际发生的情况)相反。

标签: javascript node.js


【解决方案1】:

Windows 不支持发送信号,但 Node.js 提供了一些仿真。不幸的是,它没有扩展到SIGUSR1

原始问题中的linked documentation 已更新,以指定SIGUSR1 仅适用于Linux 和OS X。(尽管我现在正在打开一个拉取请求以更改它说它不起作用在 Windows 上,而不是在 Linux 和 OS X 上运行。我很确定它会在 AIX 和 SmartOS 中运行。甚至可能在代码库中对其进行测试。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-18
    • 2010-12-20
    相关资源
    最近更新 更多