systemd:我的服务因 code=killed 而停止工作

systemd:我的服务因 code=killed 而停止工作

我的服务突然停止工作,systemctl status报告:

Main PID: 5459 (code=killed, signal=TERM)

另外,我检查了journald我的服务 ( journalctl -u myservice.service),最后一个条目是:

<...>
systemd[1]: Stopped MyService Service.

这是否意味着它被手动停止systemctl stop或者也可能意味着它已经崩溃了?有办法告诉吗?

答案1

我在使用 Rails 5.0.1 和 ruby​​ 2.3.3 的 ubuntu 18.04 上运行时遇到同样的问题:从命令行或通过 systemd 启动我的服务器会导致相同的输出:

$ /usr/local/bin/ruby bin/rails server -b0.0.0.0 -p 3000 -e production
=> Booting Thin
=> Rails 5.0.1 application starting in production on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
[2022-06-21 12:55:32] INFO -- Thin web server (v1.8.1 codename Infinite Smoothie)
[2022-06-21 12:55:32] INFO -- Maximum connections set to 1024
[2022-06-21 12:55:32] INFO -- Listening on 0.0.0.0:3000, CTRL+C to stop
Exiting

如果我从控制台或在中启动服务器,我会在控制台中看到此输出日志控制如果我通过以下方式启动它系统,而 systemctl 状态报告Main PID: 19315 (code=killed, signal=TERM)如OP注释所示。

另一个奇怪的观察是,如果我使用以下命令从命令行启动服务器-d(作为守护进程运行)然后它就可以正常工作:

/usr/local/bin/rails server -b0.0.0.0 -p 3000 -e production -d

工作正常!

systemd 服务文件没有任何变化,服务器代码本身也没有什么重大变化。这可能是一个环境问题,因为我在尝试配置服务器时经历了宝石地狱。然而,这并不能真正解释-d事物。

相关内容