システムコールはstderrに警告を送信します:エラー:サポートされていないオプション(BSD構文)

システムコールはstderrに警告を送信します:エラー:サポートされていないオプション(BSD構文)

redhat7オペレーティングシステムでNagios check_procsモジュールを実行すると、次のエラーが発生します。 Googleで検索すると、procpsパッケージを再インストールする必要があることがわかりました。また、procpsパッケージを再インストールしましたが、最初の試みでモジュールが正しく機能して失敗しました。

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

ベストアンサー1

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

check_procs問題は、プラグインとオペレーティングシステムのコマンドが一致しないことですps

プロセスを検査するためのコマンドをcheck_procs生成するNagiosプラグインは、コマンド出力に-style形式の文字列を適用して、実行中のプロセスについて知っておくべきことを見つけます。オペレーティングシステムごとにコマンドが大きく異なるため、各オペレーティングシステムのコマンドに合わせて調整する必要があります。psscanf()psps

check_procsこれは、プラグインがソースコードからバイナリにコンパイルされたときに行われます。既知のすべてのpsパラメータとオプションの組み合わせを順番にチェックし、そのうちの1つが有効になるまでフォーマット文字列を検索する400行以上の設定スクリプトがあります。その後、この組み合わせはコンパイルされたプラグインに組み込まれます。

実行中の物理システムの組み合わせが間違っていると、check_procs誤ったps形式の出力が生成されます(証明MacPortsのバグ #28801そしてモニタリングプラグインの問題 #1328)または標準エラーのエラーメッセージを生成します(証人Debian のバグ #296003) はプラグインによって選択され警告されます。後者はここで起こるものです。

これにより、次のようないくつかの結果が発生します。

  • psソースからプラグインをビルドする場合は、最終プロダクションシステムにインストールするのと同じコマンドを使用してプラグインをビルドする必要があります。
  • ps事前にビルドされたバイナリを使用している場合は、そのコマンドがプラグインを実行しているシステムのコマンドと一致するシステムにバイナリをビルドする必要があります。バイナリを直接ビルドしていない場合は、ビルダーに連絡する必要があり、事前にビルドされたパッケージバイナリを使用している場合は、少なくともパッケージマネージャに連絡する必要があります。

おすすめ記事