未分類

nodejs ファイルを編集(更新)するたびにサーバを再起動させる

更新日:

nodejsで開発を行っていて、

サーバ側のファイルを編集するたびに

サーバを停止させ、再起動するという作業が面倒なため、

編集するたびにサーバが自動で再起動するよう設定しました。

 

 

まず私が使用しようとしたのは、「inotify-tools」というもの。

しかし、これだとコンソールからファイルを編集する分には、問題ないですが、vscodeから編集した場合には、検知ができず、サーバを再起動してもらえない。

困った。

ということで、監視するためのシェルを作成してみました。

#!/bin/bash
DIR=[監視ディレクトリ]
while true
do
  TMP=$(stat $(find $DIR))
  while true
  do
    TMP2=$(stat $(find $DIR))
    if [ "$TMP" !=  "$TMP2" ] ; then
		PID=$(ps -e | grep node | awk '{print $1}')
		if [ ! -z "$PID" ]; then
		  sudo kill -9  $PID
		fi
		cd [サーバファイルまでのディレクトリ]
		node [サーバファイル] &
       break
    fi
    sleep 1
  done
done

 

1秒ごとに確認を行い、監視しているディレクトリ以下のファイルに少しでも変更があれば、nodejsサーバを再起動させます。

ちょっと強引ですが、こちらを使用すれば、ファイルの変更を探知して、サーバを再起動させることが可能です。

 

 

実は...

ここまで読んでくれた方に朗報です。

シェルを作成しなくても、「hotnode」というパッケージを使用することで、自動でサーバを再起動してくれるようです。

なんてこった...。

 

-未分類

Copyright© エンジニアの階段 , 2019 All Rights Reserved Powered by STINGER.