<< 2024/04 >> | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
|
cuLinux用に daemon を作ってみた。
09/09/19 11:58 / その他のソフト
先日、購入した uST-SH2 は組込用Linuxの cuLinux が入っています。uST-SH2 自体には Ethernet もついているので当然 TCP/IP 通信が出来るわけです。
やっぱり何かを動かしたいということで、やっぱりサーバーを作ってみることにします。 1時間ほどで簡易サーバーの出来上がり。 ただ、シングルスレッド、シングルプロセスですので実行すると当然シェルが止まります。kill すら出来ません(^-^; さて、ここからが問題。 Windows であれば Thread を起こして子スレッドを動かします。 そして一般的な Linux であれば、inetd or xinetd を使って STDIN/STDOUT を使ってマルチプロセス化します。 どうにも、uST-SH2 に搭載されている cuLinux には inetd や xinetd が見あたりません。(/etc/inetd.conf が無いから多分無いと判断) うーん、inetd を入れれば良いんだろうけど、できればルートファイルシステムを変更してどうこうってのはやりたくないなぁ。 って、ことで fork() を使って子プロセスを作ってマルチプロセス化?してみます。 無論、cuLinux で fork() は使えない(MMU無いから)のはわかっていましたが、もしかしたら動くかも!と淡い期待を寄せての話なんですけど。 開発環境である、coLinux 上で動作確認(こちらでは当然動く)して、uST-SH2 に転送。(正確には uST-SH2 から ftpget ですが) 期待通り!動きません! やっぱ、vfork() を使わないとダメなのね。ということで vfork() に変えたのですが、vfork() って使ったことが無い。(仕様の推奨はされていないと記憶しています) まぁ、取りあえず動かしてみるかということで、動かしてみると止まります(^-^;、全然 fork してません。 ここで、vfork() を調べてみたら、どうやら fork() と違い、vfork() は親プロセスを停止してくれやがるそうです。 なんじゃそら。 vfork() を更に調べると、どうやら子プロセスで _exit() されるか、exec() とかするまで親プロセスはブロックするようです。 えーと・・・何かややこしいけど、fork() みたいには使えないってことですね。 ソース増えるからイヤなんですが、渋々コードを分割して、daemon とサーバーに分離します。 んで、daemon 側で vfork() して、exec() して・・・ あ、動いた(^-^ 上の画像の通り、Port10000 で Listen しています。 下は XP の telnet で Port10000 に接続した所です。 ちゃんと動いています。 出来れば1本の実行ファイルでやりたいと思いましたが、相変わらず動けば正義なので、これで良しとします。 後はサーバー本体にコマンドを実装していけば色々できます。やろうと思えば SMTPやPOP3も出来るでしょう。(さすがにやりませんが) あ、でも、SMTP実装すれば超小型中継サーバーとか作れるかも。ちょっと面白そう。(やりませんよ?) [更新日付:2009/09/19 12:30:39]
トラックバックを見る(0) Log Link [https://akisoftware.com/cgi-bin/blom.exe?akisoft+sl+c325aa7f1ac09e0c667a6ea0f02eca678fc0ece6] TB Link [https://akisoftware.com/cgi-bin/blom.exe?akisoft+tb+c325aa7f1ac09e0c667a6ea0f02eca678fc0ece6] 記事へのコメント コメントはありません |
@AKISoftOfficialをフォロー
掲示板 サポートBBS PMailServer BBS アクセスの多い記事
最新記事(カテゴリ別)
PMailServer2 Version 2.53 をリリースしました。
04/08 00:50 フリー版からの製品版移行時の MTA 並列数について 02/17 23:52 メールサーバーの開発を始めて20年 02/07 21:46 PMailServer2 Version 2.52a をリリースしました。 12/26 14:02 PMailServer2 Version 2.52 をリリースしました。 10/01 10:48 PMailServer2 Version 2.51b をリリースしました。 09/19 01:43 PMailServer2 Version 2.51b(仮) Memo 09/12 00:33 PMailServer2 Version 2.51a をリリース、及び脆弱性についてのお知らせ 09/05 01:15 PMailServer2 Version 2.51a Memo 08/21 00:48 アドレスV125(K5)のスターターリレーの交換 08/04 10:10 最新コメント
コメントはありません
UUアクセス数
今日は 153回
昨日は 249回 トータル 304679回 3ヶ月記事別ランキング
プロフィール
Z80から68系、8086系を経由して
Pascalに移行。現在は Delphiをメインに C/C#も囓ってみたり。 「無い物は作れ」の精神で年がら年中なにかを作っています。 すぐ自前で作りたがるので無駄に工数が上がったりして自爆してみたりもします。 好きな物は麺類とお煎餅 Blom内検索
BLOM Version 1.39 ©2007-15 A.K.I Software all rights reserved. |