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

[postfix-jp:02023] local配送時の処理(alias展開とか)並列性



  永井です。

  x86 の debian 上で postfix 1.1.11 を使っています。(debian
version は 1.1.11-0.woody2 )

  エイリアステーブルによって展開される配送先への配送やコマンド
実行の並列性(って表現が正しいのかどうかよくわからないんですが)
についてお聞きしたいと思います。

  postfix では、あるエイリアスの展開結果がローカルホスト上の実
ユーザーとコマンド実行だった場合に、コマンド実行が完了するまで
ローカルスプールへの配送が行なわれないようなのですが、これを、
コマンドの実行完了を待たずにローカルユーザーへの配送を行なうよ
うな仕組み、たとえばパラメータとかはあるのでしょうか?


  以下に状況例を記載します。

  postfix上のaliasテーブルにおいて、あるエイリアス

alias1: :include:/foo/included-alias

があり、/foo/included-alias に記述されている内容が、

----ここから----
user1
user2
"|/usr/local/bin/command.sh"
----ここまで----

だったとします。user1, user2 はそれぞれローカルホスト上のユー
ザーです。三番目のエントリのシェルスクリプトは、たとえば以下の
ようなものだとします。

----ここから----
#!/bin/sh
sleep 20
----ここまで----

  このような設定/状況において、alias1 にメールを送ると、
/usr/local/bin/command.sh の実行が完了するまで、user1, user2 
には配送されないようです。したがって、command.sh の実行がとて
も遅かったりした場合に、その実行が完了するまで、user1, user2 
への配送は行なわれないようでした。

  で、このような設定において user1, user2 への配送と 
command.sh の実行の順序が、相互に干渉しないようにするようなパ
ラメータなどはないだろうか、ということです。

  一応、concurrent* とかそういう系統のパラメータは見てみました
が、どうも目的のものとは違うようです(勘違いなのかもしれません
が)。


  なお、コマンドの実行のされぐあいについて、以下のことについて
は調べてみました。

・command.sh 内でsleepをバックグラウンドで実行しても、sleepが
  完了するまで、やはり配送はおこなわれませんでした。具体的には、
  localから直接実行されている /bin/sh 自体が sleep が終了する
  まで defauct な状態で居座っているようでした。

・user2 の .forward に時間のかかるコマンドの実行が記載されてい
  ても、user1 への配送と、user2 の .forward に記載されているコ
  マンド実行とは、互いに干渉しないようでした。

----
Toyohiko Nagai.

Follow-Ups
[postfix-jp:02025] Re: local配送時の処理(alias展開とか)並列性, IKEDA Nozomu
[postfix-jp:02027] Re: local配送時の処理(alias展開とか)並列性, IKEDA Nozomu

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