Jul 01, 2011

[Apple] 固定のレスポンスを返す HTTP Server を立てる

ローカルの MacOS X にどんなリクエストに対しても固定のレスポンスを返す HTTP Server を立ててみた。 手軽に利用できる python の BaseHTTPServer をカスタマイズして実現してある。

HTTP Server の準備

以下の様な python のコードを作成。
/usr/share/local-http-server.py

#!/usr/bin/python
import BaseHTTPServer

class MyHandler(BaseHTTPServer.BaseHTTPRequestHandler):
    def do_GET(s):
        s.send_response(200)
        s.send_header("Content-type", "text/html")
        s.end_headers()
        s.wfile.write("")

if __name__ == '__main__':
    BaseHTTPServer.HTTPServer(('localhost', 80), MyHandler).serve_forever()

MacOS X の自動起動設定

/Library/StartupItems/LocalHTTPServer/LocalHTTPServer

#!/bin/sh

. /etc/rc.common

start() {
  /usr/share/local-http-server.py &
}
stop() {
  pid=`ps -ax | grep "/usr/bin/python /usr/share/local-http-server.py" | grep -v grep | sed -E "s/^ +//" | sed -E "s/ .+$//"`
  if [ "$pid" != "" ]
    then
      kill $pid;
  fi
}

case $1 in
  start)
    ConsoleMessage "Starting Local HTTP Server"
    start;
    ;;
  stop)
    ConsoleMessage "Stopping Local HTTP Server"
    stop;
    ;;
  restart)
    ConsoleMessage "Restarting Local HTTP Server"
    stop;
    start;
    ;;
  *)
    echo "$0: unknown argument: $1"
    ;;
esac

/Library/StartupItems/LocalHTTPServer/StartupParameters.plist
{
  Description     = "LocalHTTPServer";
  Provides        = ("LocalHTTPServer");
  OrderPreference = "Early";
}

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |