はじめに
node.jsをバックグラウンドで動かすための方法を調べたので未来の自分のためにも書き残しておきます。
方法① foreverモジュールを使う
以下のコマンドでインストール
sudo npm install -g forever
実行
forever start hoge.js
プロセスの起動を確認
forever list
方法② Dockerコンテナ化する
jsファイルがあるディレクトリに移動してDockerfileを作成。中身に以下の内容を書く。
FROM node:16-alpine3.15
WORKDIR /app
COPY . .
RUN npm install
CMD ["node", "hoge.js"]
ビルドする。ここではラズパイ上でdockerコンテナを稼働させることを想定しています。ラズパイで使いたいイメージは、ビルド時にプラットフォームを明示しておかないとうまく動作しない可能性があるので「--platform」を使う。
docker build --platform linux/arm64/v8 -t hogeimage .
コンテナを稼働させる。
docker run -dit --name (任意のコンテナ名 ) hogeimage:latest
dockerを使うことでバックグラウンドで動かすことができました。
さいごに
状況に応じて使い分けるといいです。foreverは導入が楽ですが、稼働させたいサーバにフォルダ丸ごと持っていく必要があったため、あまりスマートなやり方じゃないなあと感じました。