我在互联网上搜索,但找不到任何关于INVALIDARGUMENT的信息 。
在 systemd 中停止服务后,我得到了这个响应。
Oct 18 21:17:04 BSU00383 systemd: Stopping filebeat...
BUNCH OF APPLICATION ERROR HERE
Oct 18 21:17:04 BSU00383 systemd: filebeat.service: main process exited, code=exited, status=2/INVALIDARGUMENT
看起来应用程序端在从 systemd 接收到SIGKILL 信号之前未能处理SIGTERM 信号,但是在什么情况下 systemd 通常会返回 INVALIDARGUMENT?
我正在使用 Red Hat Enterprise Linux 7.4 。
如果有人可以帮助我,我将不胜感激...
谢谢,
渡边优
“INVALIDARGUMENT”名称是退出状态 2 的“代码”。
在 systemd 源代码中(查看 v219,它是 RHEL 7 附带的版本),它有一个常量定义在
enum ExitStatus
:这些常量似乎来自 LSB 标准(它试图标准化 init 脚本,而 init 脚本曾经是一个东西......)
查看LSB 的相关部分,有这张表:
哪个与其他 systemd 常量匹配......所以似乎 systemd 试图使用 LSB 标准,因为遵循这个标准的程序有一些小的好处。
当然,并不是所有的程序都遵循这个标准,所以 systemd 最终可能会告诉它它认为错误代码的含义,即使程序作者可能已经决定使用退出状态 2(以及其他到 7)用于完全不同的目的......