Subscribed unsubscribe Subscribe Subscribe

Supervisor(GolangのWEBアプリ)をインスタンス起動時に自動起動させてみる

GolangのアプリケーションのためのSupervisorは何を使って起動するかについてですが、 cfn-initやCodeDeployではフォアグラウンド起動ができません。 Amazon Linux AMIにはupstartの仕組みがすでに備わっていますので、そちらを使ってみます。

/etc/init/supervisord.conf

start on runlevel [2345]
stop on runlevel [!2345]
limit nofile 200000 200000

exec supervisord -c /etc/supervisor/conf.d/supervisord.conf --nodaemon

起動してみる

  • initctlを確認してみる
# initctl list
supervisord start/running, process 1834
  • プロセスを確認してみる
XXXX      1834  0.0  1.6 114628 17160 ?        Ss   08:54   0:00 /usr/bin/python2.7 /usr/local/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf --nodaemon
XXXX      2994  0.0  0.6  31500  6540 ?        Sl   09:13   0:00 /var/app/bin/reserve

これは楽ちんですね。
Node.jsのアプリでも使えるかもしれません。

参考

Supervisor: A Process Control System — Supervisor 3.3.0 documentation

AWS Elastic Beanstalk ドキュメント | AWS