私は、ノードstrongloopアプリケーションとそれがクラッシュした場合、それは自動的に再起動することの必要性を実行しています。ノードアプリケーションを自動再起動する最良の方法は何ですか?また、これらのクラッシュが発生したときに通知されることもありますか?ノードアプリケーションを自動再起動する方法は?
答えて
あなたは常にアプリが実行されていることを確認し、必要に応じて再起動するサービスを書くことができます(あなたのアプリケーションは、Linux上で実行されていると仮定)。ここではどのようにサービスを書くのだ:
http://www.netzmafia.de/skripten/unix/linux-daemon-howto.html
あなたは(http://strong-pm.io/)、PM2(http://pm2.keymetrics.io/)Strongloopプロセスマネージャなどのプロセスマネージャを使用することができますと永遠に(https://github.com/foreverjs/forever)。これらの3つの比較も確認してください(http://strong-pm.io/compare/)。また、サーバーの再起動とともに通知のPM2・モニター(https://www.npmjs.com/package/pm2-monitor)を確認することができます。私はそれを維持するためにinit.d
を使用してい
ほとんどのLinuxシステムでは、最近、このプロセスはずっと簡単かつ効率的になり、私たちはもはや永遠必要がないことを意味し、systemd
を使用するように切り替えています。
必要なのは、次のとおりです。
サービスファイル
/etc/systemd/system/nodeserver.service
を作成します。systemctl enable nodeserver.service
してサービスを有効にします。- は
systemctl start nodeserver.service
でサービスを開始し。
あなたは常に次のコマンドを実行して、その可用性を確認することができます。 systemctl status nodeserver.service
。
サービスファイルを変更した場合は、サービスsystemctl restart nodeserver.service
を再ロードする前にsystemctl daemon-reload
を実行する必要があります。
.service
ファイルの例:ところで
[Unit]
Description=Node.js Example Server
#Requires=After=mysql.service # Requires the mysql service to run first
[Service]
ExecStart=/usr/local/bin/node /opt/nodeserver/server.js
Restart=always
RestartSec=10 # Restart service after 10 seconds if node service crashes
StandardOutput=syslog # Output to syslog
StandardError=syslog # Output to syslog
SyslogIdentifier=nodejs-example
#User=<alternate user>
#Group=<alternate group>
Environment=NODE_ENV=production PORT=1337
[Install]
WantedBy=multi-user.target
StrongLoopに関するベストプラクティスやsystemd
が言及されてからの公式の記事があります。Read more.
また、あなたはstrongloopみんなでnodejsとstrongloopのために構築され、このモジュールで見たいと思うかもしれません:https://github.com/strongloop/strong-service-systemd
PM2、永遠にあなたのノードのプロセスを管理するための良い方法です。 PM2は、CPU /メモリ/ログを簡単に取得できるように、フレンドリーなグラフィカルインタフェースを提供することです。
私は別の興味深いアイデアを提供します:ドッカー。あなたはdocker hub
からドッキングウィンドウの画像を使用して、ランタイム環境を構築し、それを実行することができます
:
ドッキングウィンドウの実行-it [ノード画像]ノードを[あなたのscript.js]
あなたが管理することができます再起動の引数を使用してプロセスのライフサイクルを調整します。
ドッカーは、次の再起動ポリシーをサポートしています。それが終了したときに
- [いいえ] は自動的にコンテナを再起動しないでください。これはデフォルト値です
- [失敗] コンテナがゼロ以外の終了ステータスで終了した場合にのみ再起動します。必要に応じて、Dockerデーモンが再試行する回数を制限します。
- [常に] 終了ステータスにかかわらず常にコンテナを再起動してください。 alwaysを指定すると、Dockerデーモンはコンテナを無期限に再起動しようとします。コンテナは、コンテナの現在の状態にかかわらず常にデーモンの起動時に開始されます。
- 1. CentOSでノードアプリケーションを起動する方法
- 2. Pleskでノードアプリケーションをプログラムで再起動
- 3. ノードサーバーを自動的に再起動する方法は?
- 4. synologyの再起動時にドッカーを自動起動する方法
- 5. ノードサーバーを自動的に再起動する方法
- 6. Docker on Mac:マシンの再起動後にデーモンプロセスを自動再起動する方法は?
- 7. フォアマン自動再起動
- 8. 自動プログラム再起動?
- 9. Python自動PC再起動
- 10. 自動再起動バッチファイル
- 11. 自動再起動linuxコンソールアプリケーション
- 12. タイマーを再起動する方法は?
- 13. Golang:バイナリの更新時にプロセスを自動再起動する方法は?
- 14. システム再起動時に自動的にチャットサーバーアプリケーションを再起動する
- 15. Pythonでシステムを自動再起動
- 16. Bluemix Sparkで手動でクラスタを起動、停止、再起動する方法は?
- 17. Android 2.2:起動時に自動的に起動する方法と、別のアプリを起動させる方法
- 18. AWSデータパイプラインを再起動する方法
- 19. gitリポジトリを再起動する方法
- 20. QApplicationを再起動する方法
- 21. Android IntentServiceを再起動する方法
- 22. ceilometerサービスを再起動する方法
- 23. RabbitMQサービスを再起動する方法
- 24. StackOverflowErrorでJVMを自動再起動する最も簡単な方法
- 25. クラッシュ後にアプリを自動再起動する方法(Skype 4.0のように)
- 26. クラッシュ時にjarファイルを自動的に再起動する方法
- 27. クラッシュ後のアンドロイドアプリケーションの自動再起動を無効にする方法(Android 2.2)
- 28. Postgresqlの再起動方法
- 29. Windowsサービスが自動ではない再起動時に起動する
- 30. systemdを使ってSkypeを自動起動する方法は?