なぜprocmailが停止するのですか?

なぜprocmailが停止するのですか?

電子メールをprocmailに転送するための愚かなsendmail aliases.localファイル設定があります。これは古代のSolarisシステムで実行される設定です。これでRHEL6システムで実行しています。

# cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 6.2 (Santiago)

だから私は/etc/mail/aliases.localファイルを持っています:

users-log: "|/usr/bin/procmail /auto/data/users/logs/.procmailrc"

/auto/data/users/logs/.procmailrcは次のとおりです。

# cat /auto/data/users/logs/.procmailrc
MAILDIR=/auto/data/users/logs/

:0
responselog

私が理解したところ、procmailは/auto/data/users/logs/responselogファイルにのみ電子メールを書き込みます。しかし、何らかの理由でprocmailプロセスの数が増えるのを見てください。

# ps -ef | grep procmail  | wc -l
19
# sleep 2
# ps -ef | grep procmail  | wc -l
23

そしてその数は増え続けています。 strace -p を実行すると、次のような出力が表示されます。

# ps -ef | grep procmail 
mail      2872  2861  0 17:05 ?        00:00:00 /etc/smrsh/procmail /auto/data/users/logs/.procmailrc
...
# strace -p 2872
Process 2872 attached - interrupt to quit
fcntl(6, F_SETLKW, {type=F_WRLCK, whence=SEEK_SET, start=1697659298, len=0}

そしてプロセスはそこで中断されます。どうなりますか?私はprocmailを誤って設定しましたか?

答え1

ジェフ・シャラーに感謝します。彼の意見が問題解決につながった。

応答ログのサイズは約1697659298バイトですか?たぶんprocmailが大きなファイルに追加し、自分でバックアップしようとしているかもしれません。 – Jeff Schaller 20時間前

ログファイルを回転させてサイズを小さくするために実行中のcronジョブがあるとします。そのcronjobを修正した後、問題は消えました。私はまた、Solarisシステムのprocmailがさまざまなファイルロックオプションで構築されていることを発見しました。 Solarisにprocmail -v表示し、Locking strategies: dotlocking, fcntl(), lockf()Linuxにprocmail -v表示しますLocking strategies: dotlocking, fcntl()。それがどういう意味なのかよく分からない。ご存知の方は、コメントありがとうございます。

次のリンクが見つかりました。http://pm-doc.sourceforge.net/doc/#compiling_procmail_and_choosing_locking_scheme

関連情報