【问题标题】:Running Python script with Forever (Node.JS module) restarting every second使用 Forever(Node.JS 模块)每秒重新启动运行 Python 脚本
【发布时间】:2018-09-25 00:30:23
【问题描述】:

我从“永远启动 app.py”开始我的永远,然后用“永远列表”检查,应用程序已停止并且不会重新启动。当我启动它“永远启动--minUptime 1000 --spinSleepTime 1000 app.py”时,它会每隔0.8秒或更短时间一遍又一遍地重新启动它。如果我在永远之外运行我的应用程序,它就可以正常工作。我重新启动了我的电脑,同样的事情发生了。知道可能是什么问题吗?

我永远卸载了 Node.JS 并重新安装,当我尝试永远重新启动时,我遇到了这个错误:

SyntaxError: Unexpected token import
at new Script (vm.js:51:7)
at createScript (vm.js:136:10)
at Object.runInThisContext (vm.js:197:10)
at Module._compile (internal/modules/cjs/loader.js:618:28)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:665:10)
at Module.load (internal/modules/cjs/loader.js:566:32)
at tryModuleLoad (internal/modules/cjs/loader.js:506:12)
at Function.Module._load (internal/modules/cjs/loader.js:498:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:695:10)
at startup (internal/bootstrap/node.js:201:19)
error: Forever detected script exited with code: 1

更新

当我永远停止 0 停止的进程时,即使它删除它,它也会给出一个错误,内容如下:

 error:   Forever cannot find process with id: 0

之后,当我检查永久日志时,我得到:

error:   Cannot start forever
error:   script C:\Users\Aaron Mazie\log does not exist.

我在 Windows 10 上运行最新版本。 (Node.js 9.11.1 和 NPM 5.6.0)。任何帮助将不胜感激。

【问题讨论】:

  • 您是否尝试过重新安装软件包?它通常可以解决问题。
  • 执行:forever logs 0 并查看导致问题的错误。
  • 试试这个方法:forever start -c "node -r babel-register" app.js
  • 我试过了,还是说应用停止了
  • 将 app.js 文件添加到您的问题中

标签: python node.js forever


【解决方案1】:

通过检查日志解决您的问题。

在终端执行:

1) forever list 并找到您的应用正在运行

$ forever list
info:    Forever processes running
data:        uid      command             script    forever pid   id logfile                         uptime        
data:    [0] UID-HERE /usr/local/bin/node app.js 63123   56557    /home/api/.forever/UID-HERE.log STOPPED

2) forever logs 0(0 表示 [0] 列表中的序号)

forever logs 0 -f(用于连续阅读)

3) 阅读日志并解决您的问题

我猜可能是EADDRINUSE,因为当您使用同一个端口运行许多应用程序时,端口冲突,所以如果是:

确保列表中没有相同的 app.js (forever list)

执行:ps -ax | grep node 并查看可能由系统上其他用户运行的 nodejs 应用程序

更新:

由于您正在使用 nodejs 模块 (forever) 运行 python 脚本,因此请尝试像这样运行它:

forever start -c "python app.py"

【讨论】:

  • 我检查并发现端口使用不是问题。我编辑了我的帖子并包含了上面的错误消息
  • @AaronMazie 似乎您在本地开发中使用 Babel,因此要使用永远将您的代码转换为可用节点代码并永远运行它来运行它。或在 Google 中搜索:run node babel with forever
  • 我正在运行的应用程序实际上是用 Python 编写的,这是我所熟悉的。另外,Babel 是 Node.JS 自带的,因为我没有单独下载吗?
  • @AaronMazie 您在您的问题中设置了标签:node.jsforever 并且您写了那个错误说 Unexpected token import 这意味着在您的代码的某些部分使用这样的行:import SomePackage from 'some-library' nodejs本身不支持它,它正在使用转译器(babel)进行转换。但是现在你说你使用 Python?怎么会?什么(:您可以在您的问题中分享app.js 文件吗?
  • 你摇滚!有用。非常感谢您继续尝试帮助我。非常感谢。我很抱歉假设 app.js 和 app.py 是同一个东西。以前用过另一种方式,我不知道发生了什么变化。无论如何,再次感谢您
猜你喜欢
  • 2012-03-27
  • 2011-12-10
  • 1970-01-01
  • 2022-07-31
  • 1970-01-01
  • 1970-01-01
  • 2019-04-27
  • 2016-07-24
  • 1970-01-01
相关资源
最近更新 更多