当前位置: 首页 > 知识库问答 >
问题:

Heroku“状态从开始变为下降,用SIGTERM停止所有进程”

谷梁智
2023-03-14

在用以下procfile启动我的Node.js Heroku应用程序后:

web: node www/main.js

因此,我将Procfile更改为一个通用命令来解决这个问题,下面使用:

start: node www/main.js

60秒后我仍然被关闭。这就是现在的错误:

2015-01-20T13:04:01.452819+00:00Heroku[Worker.1]:状态从上升更改为开始2015-01-20T13:04:02.728905+00:00Heroku[Worker.1]:状态从开始更改为下降2015-01-20T13:04:03.434251+00:00Heroku[Worker.1]:用命令节点www/main.js2015-01-20T13:04:03.874370+00:00Heroku[Worker.1]:用SIGTERM停止所有进程2015-01-20T13:04:05.188100+00:00Heroku[Worker.1]:进程退出状态为143 201 5-01-20T13:04:05.930916+00:00app[Worker.1]:[2015年1月20日星期二13:04:05 GMT+0000(UTC)]信息连接...2015-01-20T13:04:06.837197+00:00App[工作人员1]:欢迎加入Slack。您是2015-01-20T13:04:06.837559+00:00app[worker.1]:您在:#常规2015-01-20T13:04:06.837637+00:00app[worker.1]:以及:2015-01-20T13:04:06.837739+00:00app[worker.1]:您有13条未读消息2015-01-20T13:04:07.526373+00:00heroku[worker.1]:错误R12(退出超时)->在SIGTer2015-01-20T13:04:07.526508+00:00heroku[worker.1]10秒内至少有一个进程无法退出]:使用SIGKILL停止剩余进程

我正在使用https://github.com/slackhq/node-slack-client,并没有对代码进行太多修改。我已经尝试了所有通常的事情,现在我寻求帮助。

另一个奇怪的事情是,Slack机器人连接并完美地运行了60秒。

共有1个答案

阚英睿
2023-03-14

socket=io.listen(process.env.port);

main.js文件中执行此操作,并返回到web:nodewww/main.js

 类似资料:
  • 我有一个Gradle程序在Heroku上运行一个不和机器人。机器人处理所有可能的异常,它在我的电脑上运行得很漂亮。我切换到Heroku,因为我不希望机器人脱机时,我需要重新启动我的电脑或其他原因。 每隔一段时间,日志会说“状态从崩溃改为启动”,程序会重新运行,就像我重新部署了应用程序一样,但我没有。Heroku会以某种方式循环应用程序吗? 不管怎样,该应用程序只运行大约两到五分钟,永远不会更长,日

  • 我需要运行一个巨大的过程,这将运行10分钟左右。我最大化了< code>max_execution_time,但是在我的错误日志中,我得到了一个SIGTERM,然后是一个SIGKILL。 我读了一些关于SIGTERM和SIGKILL的文章,说它们来自于守护进程,但我没有找到阻止它发生的方法。我只需要禁用它一晚。

  • 所以这是我需要解决的大事。我有Visual C#应用程序。在这个应用程序中,用户输入数据并单击Execute。当他们点击执行时,核心方法开始在新线程中,在那个线程和方法是一个循环。不断地使用方法调用器,我向UserForm发送更新,循环实际上在做什么。例如,像这样,我在每个cicle中更新progressBar。

  • 我有一个单线程进程,它不会在终止条件下死亡。处理信号掩码未显示SIGTERM被阻塞。我以root身份执行“kill”。我可以使用SIGKILL终止进程,但这是更大系统的一部分,我希望SIGTERM能够工作。 注意Sig*属性。SigCgt、SigIgn和SigBlk表示SIGTERM既没有被捕获、忽略或阻塞(第15位未设置-将最低有效位计算为#1)。由于SIGTERM的默认配置是终止进程,我希望它

  • 问题内容: python模块线程具有一个用于在其他线程中运行进程和功能的对象。该对象有一个方法,但没有方法。调用简单方法无法停止的原因是什么?我可以想象使用该方法不方便的情况… 问题答案: 可以是通用的并且有意义,因为它只是触发了线程的目标,但是通用可以做什么?根据线程在做什么,您可能必须关闭网络连接,释放系统资源,转储文件和其他流,或其他任何数量的自定义,重要任务。任何能够以通用方式甚至完成大多

  • 问题内容: 我有一个看起来像这样的代码: 问题是,一旦执行,在关闭弹出的窗口之前,什么都不会发生。 如何继续运行代码? 问题答案: 那是有意的。您要做的是在调用app.exec()之前使用信号/插槽,Qt类中的代码或生成线程。 信号和插槽是您与Qt交互的实际方式。基本上,信号是任何“事件”或自定义“事件”,并且可以将插槽视为“事件处理程序”。例如,当某人按下GUI上的按钮时,它会创建一个信号,以寻