INVALIDARGUMENT 是什么意思?

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

看起来应用程序端未能处理SIGTERM 信号接收前SIGKILL 信号来自 systemd,但是 systemd 通常在什么情况下返回 INVALIDARGUMENT?

我正在使用 Red Hat Enterprise Linux 7.4。

如果有人能帮助我我将不胜感激...

谢谢,

渡边优

答案1

“INVALIDARGUMENT”名称是退出状态 2 的“代码”。

在 systemd 源代码中(查看 v219,这是 RHEL 7 附带的版本),有一个常数定义于enum ExitStatus

EXIT_INVALIDARGUMENT = 2,

这些常量似乎来自 LSB 标准(当初始化脚本曾经是一个事物时,它试图标准化初始化脚本......)

看着LSB 的相关部分,有这张表:

1      generic or unspecified error (current practice)
2      invalid or excess argument(s)
3      unimplemented feature (for example, "reload")
4      user had insufficient privilege
5      program is not installed
6      program is not configured
7      program is not running

这与其他 systemd 常量相匹配...因此,看起来 systemd 尝试使用 LSB 标准,因为遵循该标准的程序会有一些小的好处。

当然,并非所有程序都遵循此标准,因此 systemd 最终可能会告诉它该错误代码意味着,即使程序作者可能已决定将退出状态 2(以及到 7 的其他状态)用于完全不同的目的……

相关内容