Node.jsで暗号資産アービトラージ

ビットコイントレード中心にNode.jsで実際に作るためのレシピ

Express.js(Node.js)をバックグラウンド実行させるにはforeverが便利

Express.jsをバックグラウンド実行させるにはforeverが使い勝手がよいです。

外部サーバで永続的に実行させたいときにおすすめです。

GitHub - foreverjs/forever: A simple CLI tool for ensuring that a given script runs continuously (i.e. forever)

foreverの永続化が便利

手順としてはforeverをサーバーにnpmからインストールしてforever startコマンドを実行するだけです。

npmからforeverをインストールします。

npm install forever -g

forever startコマンドで起動。Express.jsの場合はプロジェクトフォルダからbin/wwwを実行します。

forever start ./bin/www

この時点でコマンドが打てるようになっているはずです。サーバとの接続を切っても永続的に実行されます。

productionモードで起動する

Express.jsには開発・本番モードがあります。本番運用では本番モードで実行することがおすすめです。

以下のようにforever startの前にNODE_ENV=productionを記載すればOKです。

NODE_ENV=production forever start ./bin/www

起動コマンドをpackage.jsonに記載する

開発をしているとNODE_ENV=productionをつけ忘れたり、foreverのコマンドを思い出せないことが出てきます。

起動コマンドはあらかじめpackage.jsonに記載しておくと忘れてしまっても確認できるので便利です。

プロジェクトフォルダにあるpackage.jsonのscriptsに起動コマンドを追記します。

プロジェクトフォルダ

JSON形式で"scripts"の"start"に起動コマンドを記載します。

{
  "name": "shark",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "NODE_ENV=production forever start ./bin/www",
    "test": "nodemon -e ejs,js,json start ./bin/www"
  },
  "dependencies": {
    "ejs": "~2.5.7",
    "express": "^4.16.4"
  }
}

上記のように記載しておくと、npm startでコマンド実行するとforeverコマンドが実行されます。

package.jsonがない場合はnpm initで作成することができます。

scriptsのtestの部分は開発時のnodemonを利用した起動コマンドです。別記事で詳細を解説しています。

Express.jsの起動はnodemonが便利 - Node.jsで暗号資産アービトラージ

foreverの使い方

foreverのよく使うコマンドです。

Express.jsを起動

forever start ./bin/www

Foreverで実行中のscriptを確認

forever list

以下のようにinfo:Forever processes runningが出力されると起動しています。

forever list

logfileを参照すると実行されているscriptのコンソールログを見ることができます。

Express.jsを停止

forever stop ./bin/www

使い勝手がよいので是非お試しください。

なお、開発時はnodemonが便利なので、以下の記事もおすすめです。

www.kennejs.com

自作アプリケーション初心者にはさくらVPSが手軽でおすすめ