【问题标题】:Ubuntu service stops randomly with "Main Process exited, status 143/n/a"Ubuntu 服务随机停止并显示“主进程已退出,状态 143/n/a”
【发布时间】:2019-12-01 00:36:14
【问题描述】:

我的应用程序部署为 debians 并开始使用 systemd 服务。该应用程序随机崩溃。我无法找到崩溃的原因。

我有 4 个应用程序正在运行[使用 javascala 构建],其中两个被杀死(命名为 opcommon)。所有这些都是使用 systemd 服务启动的。

系统日志错误是

7 月 22 日 11:45:44 misqa mosquitto[2930]:客户端上的套接字错误 005056b76983-普通,断开连接

7 月 22 日 11:45:44 misqa systemd[1]: commonmod.service: 主进程 已退出,代码=已退出,状态=143/n/a

7 月 22 日 11:45:44 misqa systemd[1]: commonmod.service: 输入单位 失败状态

7 月 22 日 11:45:44 misqa systemd[1]: commonmod.service: 失败 结果“退出代码”

7 月 22 日 11:45:44 misqa systemd[1]: opmod.service: 主进程退出, 代码=退出,状态=143/n/a

7 月 22 日 11:45:44 misqa systemd[1]: opmod.service: 单元输入失败 状态

7 月 22 日 11:45:44 misqa systemd[1]: opmod.service: 结果失败 '退出代码'

但是对于opcommon,我的应用程序日志文件没有收到任何错误

当我阅读更多时,我了解到崩溃的原因是由于SIGTERM命令,但无法找出导致它的原因。在任何这些应用程序中,我都没有killall 的执行命令。

有没有办法确定哪个进程正在杀死我的应用程序。

我的systemd服务是这样的:

[Unit]
Description=common Module
After=common-api
Requires=common-api

[Service]
TimeoutStartSec=0
ExecStart=/usr/bin/common-api

[Install]
WantedBy=multi-user.target

【问题讨论】:

    标签: scala ubuntu crash systemd sigterm


    【解决方案1】:

    基本上,Java 程序在关闭以响应 SIGTERM 时有时不会发回预期的退出状态。

    您应该能够通过将退出代码添加到 systemd 服务文件作为“成功”退出状态来抑制这种情况:

    [Service]
    SuccessExitStatus=143
    

    此解决方案已成功应用于 here (serverfault)here (stasckoverflow) 两者与 java 应用程序。

    【讨论】:

      猜你喜欢
      • 2018-02-07
      • 1970-01-01
      • 2021-09-25
      • 2021-10-18
      • 1970-01-01
      • 2015-04-16
      • 1970-01-01
      • 1970-01-01
      • 2018-12-01
      相关资源
      最近更新 更多