Zopfcode

かつてない好奇心をあなたに。

SupervisorをOpenWrtで使ってみる

プログラムを簡単に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のサンプルを参考にしようとしたが結局フルスクラッチした。

gist.github.com

Defaultなsupervisord.confは勝手に生成されないので、公式のサンプルから/etc/supervisord.confへ引っ張ってくる。 Webブラウザから見るためのWebサーバは普通にメモリ食うので起動しなくていいかもしれない。zramを使えばそう問題にもならないのでそこは自由に。

サーバの設定は port=*:9001 としておかないと外からアクセス出来ないので注意。

起動してみる

/etc/init.d/supervisor start

起動してWebサーバが準備できるまで30秒は待つ必要がある。topを使えば大体わかるので見ながら待つ。

f:id:puhitaku:20160515045958p:plain

ほうほう、よっしゃ!見えてる!