[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[postfix-jp:03823] Re: コマン ド起動のエラーメッセージ の取得方法



At Fri, 09 Jan 2004 17:39:41 +0900,
HAYAKAWA Hiroshi wrote:
> 紹介していただいた2つの方法を試してみました。

ご報告ありがとうございます。

> > test: |/.../testd.php || exit 71

> ■PHPのエラーの場合(エラーメッセージ部分のみ抜粋)
> 
> <test@example.com>: Command died with status 255:
>     "/.../testd.php||exit". Command output: PHP Parse error:
>     parse error in /.../testd.php on line 38  Parse error:
>     parse error in /.../testd.php on line 38
> 
> <71@example.com>: unknown user: "71"
>
> ■シェルエラーの場合/正常に処理された場合(エラーメッセージ部分のみ抜粋)
> 
> <71@example.com>: unknown user: "71"

全く予想外の挙動ですね。Postfix のソースを読まないことには
何をやっているのか全然わからん。今のところ興味はないので、
実際にどのように動作しているのかはパスさせていただきます。:-)

> > エラーメッセージを取得したいなら、
> > 
> > test: |/.../testd.php 2>&1|/path/to/mailifin -s 'testd.php error' postmaster
> > 
> > とかして、以下のスクリプトを /path/to/mailifin に置くとか?
> 
> こちらはほぼバッチリでした。

一つ注意点を書くのを忘れていました。スクリプト中のコメントの
「FIXME:」に以降に書いてあるように、入力の最初の 1行にバック
スラッシュが含まれていると、欠落します。read 内部コマンドにそれを
抑制するオプションがない /bin/sh が存在するもので(Solaris の
/bin/sh とか。欠陥としか思えん)。

… /bin/sh の read が -r オプションを持っているかどうか
判断するようにしました。以下はパッチ:

--- old	2004-01-06 16:00:01.000000000 +0900
+++ mailifin	2004-01-09 18:09:48.000000000 +0900
@@ -1,9 +1,9 @@
 #!/bin/sh
 ##
 ## Mail if stdin is not null
-## Copyright (c) 2002-2004 SATOH Fumiyasu. All rights reserved.
+## Copyright (c) 2002-2004 SATOH Fumiyasu, All rights reserved.
 ##
-## Date: 2004-01-06, since 2002-04-16
+## Date: 2004-01-09, since 2002-04-16
 ## License: GNU General Public License version 2
 ##
 
@@ -69,8 +69,14 @@
     set -- -f "$sender" ${1:+"$@"}
 fi
 
+## Check if read supports -r option
+read_r=
+if echo |read -r 2>/dev/null; then
+    read_r=-r
+fi
+
 ## Read from stdin
-if read line; then
+if read $read_r line; then
     :
 else
     ## No message in stdin

> P.S.
> Postfixが標準でもって欲しい機能ですよね。

私は逆に、必要もないのに何でも自前でゴテゴテと実装するのは
止めて欲しいです。スマートな (時には泥くさい?) 細工が
できるような作りになってくれていれば十分。

-- 
-- Name: SATOH Fumiyasu  -- Home: http://www.sfo.jp (in Japanese only)
-- Mail: fumiya at net-thrust.com, samba.gr.jp, namazu.org or ...

Follow-Ups
[postfix-jp:03824] Re: コマン ド起動のエラーメッセージ の取得方法, HAYAKAWA Hiroshi
References
[postfix-jp:03819] Re: コマン ド起動のエラーメッセージ の取得方法, SATOH Fumiyasu
[postfix-jp:03822] Re: コマン ド起動のエラーメッセージ の取得方法, HAYAKAWA Hiroshi

[検索ページ] [Postfix-JP ML Home]