在父进程中,我启动了tiny-lr(livereload)服务器,然后生成一个查找css文件更改的子进程。如何将livereload服务器传递给子进程,或者是否可以查询当前在子进程中运行的livereload服务器,以便我不再创建它来获取端口的已使用错误。
与节点http服务器相同的情况。我可以知道服务器是否已经在运行并使用它而不是创建新服务器。
答案 0 :(得分:1)
是否可以查询livereload - 它可以并且可以以多种方式实现。
使用stdout/stdin
与子进程通信。有关详细说明,请查看HERE。基本上,您可以将消息从一个进程发送到另一个进程并回复它们。
使用http.request
检查端口是否正在使用。
您可以使用文件:使用服务器的进程使文件在写入模式下保持打开状态 - 文件内容存储服务器运行的端口(如果需要)
您也可以使用sockets进行进程间通信。
基本上,上述都不保证 100%保密,因此您无论如何都必须try/catch
出现错误:服务器可能会在您检查后死亡,但在您想要做某事之前用它。
如何将livereload服务器传递给子进程 - 如果您的意思是在不同进程之间共享一个对象,那么肯定是不可能的;如果你的意思是改变我对象的所有权,那么99,99%肯定也不可能。
只有一个进程负责运行服务器有什么问题?如果需要,为什么不使用forever来处理运行和重新启动服务器?