Pythonの軽量ウェブフレームワークBottleのデーモン化
Pythonの軽量ウェブフレームワークBottleは非常に便利である。10行にも満たないコードでウェブサーバーが構築できるけれども、せっかく立ち上げたプロセスはデーモン化してないとログアウトしたらkillされる。 今回はこれをデーモン化したい。今回はBottleのデーモン化に特化したBottleDaemonでやってみよう。
BottleDaemonは文字通りBottleのデーモン化に特化したパッケージ。構成ファイルも一つだけというモノシリックな構造だ。
BottleDaemon 0.1.1 : Python Package Index
必要パッケージの導入
次の二つを導入する。
$ pip install python-daemon $ pip install Bottledaemon
ソースコードの書き換え
BottleDaemonの公式ソースコードに少し手を加えたものが以下。通常のBottleアプリケーションと違って、先頭行にbottledaemonのimportを宣言しておく必要がある。
daemon_run()でデーモンとして立ち上げる。公式では何も引数がないが、この例のようにホストやポート番号の指定ができる。
from bottledaemon import daemon_run from bottle import route @route("/hello") def hello(): return "Hello World" if __name__ == "__main__": daemon_run(host='localhost', port=8080)
起動と停止
以下の様に簡単にできる。
$ python exapmle.py start $ python example.py stop
デーモン化にはそのためのコードを自前で用意したり、簡単にできる場合でも設定ファイルを編集したりと色々準備が必要だが、Bottleに関しては設定ファイルすらも不要でデーモン化ができる。
参考文献
Bottle: Python Web Framework — Bottle 0.13-dev documentation