【发布时间】:2018-06-07 07:55:25
【问题描述】:
我正在尝试找到一种在后台运行我的 Nodejs 应用程序的方法。我做了很多研究并且知道它们(node-windows、forever、nssm、...)。
在此期间,我想到的是在 c++ 中创建我的 OWN 服务包装器,它将脚本(Windows)作为子进程执行。
因此我的问题是:这可能吗?与执行我的脚本的 node.exe 进行通信的可能性是什么?在 Google 中找到大量关于节点“子进程”模块的文章,但没有找到 node.exe 是子进程的地方。
顺便说一句:在 SO 上的一个答案中,我找到了一个使用 sc.exe 的解决方案,但是当我使用脚本安装 node.exe 时,它会被终止,因为它不响应 SCM 命令。这有用吗?
提前谢谢你
【问题讨论】:
-
这个问题是否仅适用于 C++ 包装器?不清楚你为什么要把它弄得那么复杂。 在 Google 中找到大量关于节点“子进程”模块的文章,但找不到 node.exe 是子进程的地方。 - 因为它不是特定于 node.exe,所以你只需像其他任何子进程一样杀死它过程,可能使用
kill()。在 Node 中生成的进程是无缝的,stackoverflow.com/questions/20187184/… -
是的,我已经考虑过这个方向,但已经了解到 windows 不支持此类信号。这就是我要求交流可能性的原因。 (主要是为了以一种好的方式终止节点进程)。如果有人能立即得到答案,那就太好了,这样我就可以节省测试这些东西的时间。编辑:是的,仅限 c++ 包装器
-
如果您的问题是优雅地终止进程,我建议直接重新提问,因为这与 NodeJS 无关,仅与 C++ 部分有关,与执行无关,这是关于杀戮的。 在 SO 上的一个答案中,我找到了 sc.exe 的解决方案,但是当我使用脚本安装 node.exe 时,它会被终止,因为它不响应 SCM 命令。这有用吗? - 目前还不清楚它的全部内容。如果你有代码相关的问题,问题应该包含stackoverflow.com/help/mcve。
-
不,问题不在于终止进程...我很确定 windows c++ 函数可以做到这一点,但它在很大程度上取决于 node.exe 的实现。 (如果我这样做,我的脚本最终会以正确的方式被注意到吗?例如脚本内部流程变量的退出事件)。我不能发布这样的问题,因为它会被关闭,因为它是一般性的。
-
我建议您提供 C++ 部分的示例实现,以免这个问题被认为过于笼统,因为它处于当前状态。
标签: c++ node.js ipc child-process