2017/07/14更新

[Amazon Linux] サーバー再起動時に、pm2を自動的に起動する

このエントリーをはてなブックマークに追加            

こんにちは、@yoheiMuneです。
AmazonやGoogleなどのクラウドでは、クラウド事業者の都合で、サーバーが自動的に再起動やお引越しされることもしばしば。あとオートスケーリング設定でサーバーが増えることもあったり。そんな時サーバー再起動にも、pm2が自動的に起動する方法をブログに書きたいと思います。
画像


サーバー再起動時に、PM2を自動的に起動する

さてさっそく本題ですが、今回は以下のようなアプリが、pm2で稼働していることを想定して話を進めます。
$ pm2 list
┌──────────┬────┬─────────┬───────┬────────┬─────────┬────────┬─────┬───────────┬──────────┐
│ App name │ id │ mode    │ pid   │ status │ restart │ uptime │ cpu │ mem       │ watching │
├──────────┼────┼─────────┼───────┼────────┼─────────┼────────┼─────┼───────────┼──────────┤
│ myapp    │ 0  │ cluster │ 25258 │ online │ 575     │ 17h    │ 0%  │ 68.3 MB   │ disabled │
│ myapp    │ 1  │ cluster │ 25263 │ online │ 575     │ 17h    │ 0%  │ 68.9 MB   │ disabled │
└──────────┴────┴─────────┴───────┴────────┴─────────┴────────┴─────┴───────────┴──────────┘
そしてpm2をサーバー起動時に自動的に動かすには、pm2 startupコマンドと、pm2 saveコマンドを利用することで実現できます。2つのコマンドを用いることで、init.dにpm2の起動を登録してくれます。
# 使い方:pm2 startup [環境名]
$ pm2 startup amazon
上記では環境にamazonを指定していますが、CentOSやUbuntuなどそのほかの環境も指定することができます(詳細はこちらをご参照ください)。

上記を実行すると、/etc/init.d以下に以下のファイルを作成します(表示例はrootユーザーで実行した場合)。
$ ls /etc/init.d/pm2-root
/etc/init.d/pm2-root
そして、それを有効化するために、saveコマンドを利用します。
$ pm2 save
[PM2] Saving current process list...
[PM2] Successfully saved in /root/.pm2/dump.pm2
そして、有効化されたことを確認してみます。
$ chkconfig --list
pm2-root        0:off   1:off   2:on    3:on    4:on    5:on    6:off
無事に有効化されたことが確認できました。
最後にサーバーを実際に再起動してみて、pm2が本当に立ち上がるのかを確認すればOKです。



参考資料

pm2の今回の設定は、本家ドキュメントだと以下にあります。適宜ご参照ください。

PM2 - Startup Script(本家、英語)



最後に

pm2は色々と便利な機能が満載ですね。Node.jsでの運用にはこれ一択でも良い気がしております。

最後になりますが本ブログでは、Linux・インフラ・開発環境・Python・フロントエンド・Go言語・Node.js・Swift・Java・機械学習など雑多に情報発信をしていきます。自分の第2の脳にすべく、情報をブログに貯めています。気になった方は、本ブログのRSSTwitterをフォローして頂けると幸いです ^ ^。

最後までご覧頂きましてありがとうございました!





こんな記事もいかがですか?

RSS画像

もしご興味をお持ち頂けましたら、ぜひRSSへの登録をお願い致します。