[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[postfix-jp:02028] Re: local配送時の処理(alias展開とか)並列性
- Subject: [postfix-jp:02028] Re: local配送時の処理(alias展開とか)並列性
- From: Toyohiko Nagai <nagai@xxxxxxxxxxxx>
- Date: Wed, 11 Sep 2002 03:37:57 +0900 (JST)
永井@シリウスです。
>>>>>> IKEDA Nozomu <ike@xxxxxxxxxxxxx> wrote:
> ・include されるファイルには、コマンドを先に記述してからユーザを
> 記述する。
>
> どうやらファイルの後ろから解釈されるようです。aliases は順番
> 通りの様子。ただ、これはソースの解析をおこなっていないので
> 常にそうなるかは検証していません。
これについてもやってみてたんですが、どうも順序に対する依存性
はないみたいでした。include リストのどこに書いても、待たされる
みたいです。
> ・呼び出すコマンドの中で、時間がかかる処理の stdout を /dev/null や
> ファイルなどに向けた上でバックグラウンドで走らせる。
これもやってみましたが、変わらないようでした。これは、たとえば
----ここから----
#!/bin/sh
sleep 20 > /dev/null &
----ここまで----
とかいうスクリプトを実行してみる、ということですよね?このスク
リプトを include の中から実行するようにしてみましたが、やはり
sleep 20 が終了するまで待たされます。その時の ps auxw の表示結
果では、スクリプト名を command.sh とすると、
nobody 5186 0.5 0.0 0 0 ? Z 03:13 0:00 [command.sh <defunct>]
のようになってました。
ちなみに状況の回避そのものについては、[postfix-jp:02023] で
書いたような方法(.forward を利用する)で回避してはいます。が、
この性質が postfix の本質的なもの(実装依存ぽい気も若干…)な
のか、それともなにか制御できうるものなのかが気になっています。
(だいたい、バックグラウンドで実行してるのに defunct なまま待
たれてるってのが、どうにも理由がよくわからなくて…)
あと、ちょっとよくわからなかったんですが、池田さんのおっしゃ
る、
> コマンドをバックグラウンドで走らせても、stdout が残っていると
> 結果としてコマンドの終了を待ってしまうことになります。
というのは、どういう仕組みあるいは仕様によるものなんでしょうか?
また、『stdoutが残っている』というのは、どういう状態をさすので
しょうか?
ちなみに、上記のスクリプトをプログラムに置き換えてもだめでし
た。たとえば実行直後に stdout をfclose して、stdout を
fopen("/dev/null", "w" ) と差し換え、すかさず fork ->
exec(sleep 20)する、とかいうのも試してみましたが、状況は変わり
ませんでした。
----
Toyohiko Nagai.
- Follow-Ups
-
- [postfix-jp:02029] Re: local配送時の処理(alias展開とか)並列性, YOSHIMURA Keitaro
- References
-
- [postfix-jp:02026] Re: local配送時の処理(alias展開とか)並列性, Toyohiko Nagai
- [postfix-jp:02023] local配送時の処理(alias展開とか)並列性, Toyohiko Nagai
- [postfix-jp:02027] Re: local配送時の処理(alias展開とか)並列性, IKEDA Nozomu
[検索ページ]
[Postfix-JP ML Home]