如何崩溃我的节点应用程序的目的?

我一直在与Dokku和Docker一起部署工作stream程,现在我想要关注我的应用程序的连续性(沿着Forever的路线)。 为了testing它,我需要一种故意让应用程序崩溃的方法。

我创build了一个新的路线“/ crashme”与应该破坏我的应用程序的function。

到目前为止还没有find与node / nodemon本地工作的方式,我试过了:

  • 被零除
  • 抛出一个新的用户exception
  • 引用一个不存在的variables

这些东西都没有使应用程序崩溃到需要重新启动的地步。

我怎么能把它拿下来?

我的脑海里有三样东西:

  • 你可以调用process.exit 。 这肯定会将您的应用程序置于需要重新启动的状态。
  • 另一个选项可能是运行一个无限循环,比如while (true) {} 。 这应该使Node.js使用100%的CPU,因此也应该重新启动应用程序(虽然这当然意味着你/某人不得不看你的应用程序)。
  • 在C中创build一个模块,例如试图访问内存中的一个随机的地方崩溃。 我手边没有这样的模块,但是我非常肯定,具有C技能的人员应该很容易编写这样的模块。

添加到Golo答案:

C模块通过分段故障导致崩溃:

 int main () { //Create a array of 1 char char a [1]; //Create a index int i = 0; //Infinite loop to go around the compiler while(1) { //Write on case i of a, on the second iteration, it will write in unreserved memory => crash a[i] = 0; i = i + 1; } //Should not go there return -1; } 

并增加DrakaSAN的答案,一个更简单的C模块崩溃:

 int main() { *(int*)(0) = 0; return -1; } 

我正在尝试一个类似的事情与快速/崩溃的路线,但只是抛出一个错误,在路线处理程序是不足以崩溃它。

process.exit会停止我的应用程序,但永远不会重新启动它。 (永远的日志刚刚说了一些像过程自我终止的东西。)

我的工作是插入到我的/crash路线:

 setTimeout(function () { throw new Error('We crashed!!!!!'); }, 10);