プログラムを簡単にDaemonizeできることで人気のSupervisorをOpenWrtでも使ってみた。
インストール
SupervisorはPure-Pythonで書かれているのでインストールは簡単。python-pip
を入れると依存関係でPythonが全部入る。本当はPython 3を使いたいのだが、opkgにPILとかも揃っている (python-imglib
)関係で仕方なくPython 2を使っている。
opkg update opkg install ca-certificates python-pip pip install supervisor
Init scriptの移植
OpenWrtでのinit scriptは少々特殊。OpenWrt独自のprocdを使ったスクリプトを書く必要がある。 当初は公式が上げているSlackwareのサンプルを参考にしようとしたが結局フルスクラッチした。
Defaultなsupervisord.confは勝手に生成されないので、公式のサンプルから/etc/supervisord.conf
へ引っ張ってくる。
Webブラウザから見るためのWebサーバは普通にメモリ食うので起動しなくていいかもしれない。zramを使えばそう問題にもならないのでそこは自由に。
サーバの設定は port=*:9001
としておかないと外からアクセス出来ないので注意。
起動してみる
/etc/init.d/supervisor start
起動してWebサーバが準備できるまで30秒は待つ必要がある。top
を使えば大体わかるので見ながら待つ。
ほうほう、よっしゃ!見えてる!