首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向stderr发送警告的系统调用:错误:不支持的选项(BSD语法)

向stderr发送警告的系统调用:错误:不支持的选项(BSD语法)
EN

Unix & Linux用户
提问于 2015-12-22 10:33:27
回答 1查看 2.1K关注 0票数 2

当我们在check_procs os中运行Nagios check_procs模块时,我们将面临以下错误。通过谷歌搜索,我们发现我们需要重新安装procps软件包。我们还重新安装了procps软件包,但是模块正在进行第一次尝试,然后失败。

代码语言:javascript
复制
Error: System call sent warnings to stderr: error: unsupported option (BSD syntax)
EN

回答 1

Unix & Linux用户

发布于 2015-12-22 13:48:44

Error: System call sent warnings to stderr: error: unsupported option (BSD syntax)

问题是,check_procs插件与操作系统的ps命令之间存在错误匹配。

Nagios的check_procs插件生成了检查进程的ps命令,将scanf()-style格式字符串应用到命令的输出中,以了解运行进程需要了解什么。考虑到不同操作系统之间的ps命令差异很大,它必须根据每个操作系统的ps命令对其进行调整。

check_procs插件从源代码编译到二进制时,它就会这样做。有一个400多行的配置脚本,它辛苦地依次检查ps arguments+options和扫描格式字符串的每个已知组合,直到其中一个开始工作。然后将此组合硬连接到编译的插件中。

如果该组合对于运行check_procs的实际系统来说是错误的,则ps要么以错误的格式生成输出(见证MacPorts bug #28801监视-插件问题#1328),要么生成错误消息到标准错误(见证Debian Bug #296003),由插件获取并发出警报。后者就是这里正在发生的事情。

这有各种后果:

  • 如果您正在从源代码构建插件,则需要使用安装在最终生产机器上的相同的ps命令来构建它。
  • 如果您使用的是预构建的二进制文件,则需要将该二进制文件构建在一个系统上,该系统的ps命令与您正在运行插件的计算机上的命令匹配。如果您没有自己构建二进制文件,那么您需要与那些自己构建二进制文件的人交谈,或者,如果您使用的是打包的预构建二进制文件,则至少要与包维护人员交谈。
票数 4
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/250883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档