【问题标题】:Run two scripts in a node.js script在 node.js 脚本中运行两个脚本
【发布时间】:2015-08-21 16:14:12
【问题描述】:

我正在尝试在 node.js“脚本”部分中运行两个可执行文件。其中一个是 node.js 可执行文件(我们称之为 proc1),另一个是 http-server 用于提供一些静态资产。这些都是连续运行的过程。我想要一种方法来一起管理这些,以便它们一起开始,并且可以一起停止。我还希望能够看到cosmos 命令的输出。

我试过这样配置:

"scripts": {
    "build": "http-server >> /dev/null &; proc1",
}

但这给出了错误:

sh: -c: line 0: 意外标记附近的语法错误;' sh: -c: line 0:http-server &; proc1'

我试图找到一个简单的 node.js 进程管理解决方案来运行它,但找不到合适的解决方案(类似于 Python 世界中的supervisor)。

有什么想法吗?

【问题讨论】:

    标签: javascript node.js shell process


    【解决方案1】:

    创建另一个 node.js 脚本来启动/停止你的两个服务器。

    【讨论】:

      【解决方案2】:

      sh: -c: line 0: 意外标记附近的语法错误;' sh: -c: line 0:http-server &; proc1'

      错误在您的 shell 代码中。改成

      "http-server >> /dev/null & proc1",
      

      您不能以& 结束语句,在后台运行,也不能以; 结束。

      【讨论】:

      • 这很好,但问题是当我按 Ctrl-C 杀死 proc 时,http-server 一直在后台运行。有没有办法杀死它?
      • 它是后台的,所以当你键入 Ctrl-C 时它没有收到发送到前台进程的 SIGINT。您必须找到该进程并向其发送信号。你的 shell 的作业控制可能会有所帮助,如果 shell 运行进程但如果它是由其他东西(可能是 nodejs?)产生的,那么它可能已经重新设置为 init 并且你必须在进程列表中找到它。
      猜你喜欢
      • 2014-05-04
      • 2015-02-18
      • 2020-10-21
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多