やったこと
swagger-uiをnodeのhttp-serverで動かしていたものを
supervisor使って勝手に立ち上がるようにした
環境
- Mac OS X
- node v8.4.0
手順
http-serverのインストール
$ npm install -g http-server
swagger-uiを持ってくる
$ cd path/to
$ git clone https://github.com/swagger-api/swagger-ui
$ cd swagger-ui/dist
dist/をルートにして動かします
$ http-server -p 9090
Starting up http-server, serving ./
Available on:
http://127.0.0.1:9090
http://*.*.*.*:9090 # macに振られているIP
これで、swagger-uiにアクセスすることができるようになりました。
今回はこのプロセスを永続化したいわけです
supervisorのインストール
この方のdocを参考にしてすんなり行きました
永続化するプロセスの設定ファイルを作成
$ /usr/local/etc/supervisor/conf.d
$ sudo vi swagger-ui.conf
$ cat swagger-ui.conf
[program:swagger-ui]
directory=/path/to/swagger-ui/dist
command=http-server -p 9090
numprocs=1
autostart=true
autorestart=true
user=user ; 実行ユーザー
redirect_stderr=true
stdout_logfile=/var/log/supervisor/swagger-ui.log
supervisorに設定を再読込させる
$ supervisorctl
supervisor>
# 設定読み込み
supervisor> reread
swagger-ui: available # conf.dに設定したプロセスが表示される
# 再起動
supervisor> reload
Really restart the remote supervisord process y/N? y
Restarted supervisord
# 確認
supervisor> status
swagger-ui RUNNING pid 724, uptime 0:00:03
再起動するのかテスト
$ ps ax | grep http-server
1198 0.0 0.0 2452260 832 s010 S+ 2:58PM 0:00.01 grep http-server
1035 0.0 0.1 3041256 11824 ?? S 2:50PM 0:00.27 node ~/.nvm/versions/node/v8.4.0/bin/http-server -p 9090
$ pgrep node
1035
$ pgrep node | xargs kill -9
$ ps ax | grep http-server | grep -v grep
1276 0.0 0.3 3041256 22556 ?? S 3:00PM 0:00.26 node ~/.nvm/versions/node/v8.4.0/bin/http-server -p 9090
あたらしくプロセスIDが振られているので勝手に立ち上がっていることが確認できました