2014-09-10 54 views
1

我在.bat文件中使用以下非常基本的脚本来保持node.js服务器在Windows机器上运行。保持节点运行的基本Windows脚本

: loop 
npm start 
goto loop 
: end 

但是,如果服务器停机,它不会自动重启。

我知道有一些保持节点启动并运行的好方法(example),但我现在真的想专注于代码的其他部分,并不断与其他合作伙伴进行集成。因此,我真的在寻找一个非常简单的bat文件,它可以在服务器关闭时重新启动服务器(在Windows上)。我有上面那个可能会有什么错误?

+0

如果服务器出现故障*可能会出错,而不是您认为的那样。应用程序崩溃有很多种方式,其中一种会导致应用程序挂起,因此脚本永远不会进入“goto loop”阶段。为什么不使用'nodemon'模块? – alandarev 2014-09-10 11:38:13

+0

谢谢。我只是指崩溃。 – MightyMouse 2014-09-10 11:43:03

回答

2

可能(您必须检查它),npm是批处理文件(.bat.cmd)。

当您从另一个批处理文件调用批处理文件时,执行被转移到被调用的批处理中,并且不会返回给调用者。在你的情况下,你的goto loop永远不会到达npm永远不会返回

你需要使用call npm start,所以当被调用的批量结束时,执行将继续在调用方。

+0

这看起来像解决了问题。我可以看到两个节点实例在任务管理器上运行,当我终止其中一个节点时,它会按预期重新启动。谢谢你的时间和受过教育的猜测。 :) – MightyMouse 2014-09-10 11:46:21