[Armadillo:06291] Re: inetd経由でmjpg_streamer
Shin-ya Koga
email@hidden
2010年 12月 8日 (水) 19:38:33 JST
サムシングプレシャスの古賀です。
斎藤さん([Armadillo:06290]):
>inetd.confに
>
>mjpg-streamer stream tcp nowait root /usr/local/mjpg_streamer
>mjpg_streamer -i "input_uvc.so -d /dev/vidoo0 -y -f 10 -r 640x480" -o"output_http.so -p 8080 -w /var/www/stream"
>を書いて、openbsd-inet を再起動後
>
>手動で
>mjpg_streamer -i "input_uvc.so -d /dev/vidoo0 -y -f 10 -r 640x480" -o"output_http.so -p 8080 -w /var/www/stream"
>を実行したところ
…
>bind: Address already in use
> o: server_thread(): bind(8080) failed
>とのエラーで起動できませんでした。
>
>bind: Address already in use ですが
>この間に、ポート8080に要求は出していません。
>inetd自身がrestart時などに、ポートを一度開いたりするのでしょうか?
はい。たとえば
http://linuxjm.sourceforge.jp/html/netkit/man8/inetd.8.html
http://ja.wikipedia.org/wiki/Inetd
http://www.fc-lab.com/network/program/inetd/
などが参考になると思います。
逆に言うと、mjpg_streamer のように、自前で bind()/listen()
accept() するタイプのサーバプログラムは、inetd と組み合わせる
ことは出来ないわけですよね。
inetd と組み合わせて使うとしたら、次の二つの方策が考えられるの
かなと思います:
a.) mjpg_streamer の output_http.so のソースをベースにして、
標準入出力に対して HTTP 入出力を行う output plugin を
実装して使う。
b.) mjpg_streamer の起動・終了を行う専用の daemon を実装して
inetd から起動されるようにする(※その daemon を kick
するためのポートを別途割り当てる)。
--
古賀信哉 (株)サムシングプレシャス
armadillo メーリングリストの案内