プロが教える店舗&オフィスのセキュリティ対策術

RedHatLinux8を使っており、
ログの内容がよく分からなくて困っています。

/var/log/messages
を読むと、
application bug: crond(xxxxx) has SIGCHLD set to SIG_IGN but calls wait().
という記録が、ずらずらと並んでいます。

crondがわけのわからない仕事をしているのだとは思うのですが、どのような意味なのでしょうか?
なにかの問題を示しているのであれば、どのような対策が必要でしょうか。
また、たいした問題がないとしても、できれば、この記録でログファイルを埋め尽くすのを避けたいのですが、よい方法はないでしょうか。

以上の件、お教えいただけたら幸いです。よろしくお願いします。

A 回答 (3件)

こんばんは。


cron は vixie cron ですか?最新版をお使いですか?
古い cron にはセキュリティホールもありますので、
出来るだけアップデートしたほうがいいですよ。
それによってエラーも出なくなるかもしれませんし。
RHL8 用の Errata には vixie-cron の RPM はありませんでしたが、
参考 URL から最新版がダウンロードできます。
うまく動かなければ SRPM を手に入れてビルドする必要があるかも。

さて、子プロセスを生成するプログラムは、
子プロセスの状態の変化を SIGCHLD(SIGCLD)シグナルで受け取り、
子プロセスが終了しても続行したいときはハンドラとして
SIG_IGN を指定するプログラムが多いのですが(これ自体はバグではない)、
これは Linux、特に POSIX 準拠のプログラムではいけないこととされており、
SIG_IGN の代わりに SIG_DFL を使うべしと
signal(2) のマニュアルにも書いてあります。
その辺りが臭いんだと思いますよ。
実際、crond に限らず他のデーモンでもこのエラーメッセージを出す
ものがありますので(私のところでは何も出ていません)。
http://www.linux.or.jp/JM/html/LDP_man-pages/man …
http://www.linux.or.jp/JM/html/LDP_man-pages/man …

vixie cron のソースを見た(「読んだ」ではありません(^^;)限り、
Linux や BSD などさまざまな環境で動くようちゃんと考慮して
書かれているように見えましたが……。
Turbolinux 8 Workstation 用の cron のソースには
vixie-cron-xxxx.sigchld{,2}.patch などというパッチもありましたし。

参考URL:http://www.redhat.com/swr/i386/vixie-cron-3.0.1- …
    • good
    • 0

#1のエラーメッセージの意味は間違っています。



『子プロセスからの終了信号を無視する』設定(SIGCHLD set to SIG_IGN)なのに,子プロセスの終了を待っている(calls wait())。

何かのアプリケーションにこういうバグがある,というメッセージですね。

対策を考える場合,一連のメッセージの頭に付いているであろう時間やpidも大事な判断材料ですよ~。
あと,そのエラーが始めて出現した頃,システムにどんな変更を加えたのか,よく思い出してみましょう。
    • good
    • 0

アプリケーションバグと書いてある通りなのではないでしょうか?


私もよくわかりませんが、cronで動かしているプログラムにバグがあって、まだ処理が残っているのに、終了したというシグナルを出しているようです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!