ITnodejs

nodejs サーバを停止、再起動させる方法

開発環境でサーバ側の修正を行ったため、 サーバを起動させようと思ったら、

Error: listen EADDRINUSE :::3000

とエラーメッセージが。 いつもならサーバを起動したteratermからctrl + cで停止させるのですが、 今回は、起動させた部分が見つからないため、バックグラウンドで動いているようです。 プロセスを調べ、停止させましょう。

停止方法

まず、nodejsサーバのプロセス番号を調べます。

ps -e | grep node

を実行すると、

23363 pts/0    00:00:00 node

な感じに表示されると思います。 ここでいうと、「23363」がプロセス番号ですね。 強制終了させましょう。

sudo kill -9 23363

プロセス番号を指定し、強制終了します。 これで、停止できました。 再度

ps -e | grep node

を実行しても結果が表示がされないはずです。

おすすめのサーバ起動方法

サーバを停止し、起動しと、いちいちコマンドを打っていては面倒。 ならば、シェルを作成しましょう。

#!/bin/sh
PID=$(ps -e | grep node | awk '{print $1}')
if [ ! -z "$PID" ]; then
  sudo kill -9  $PID
fi
cd [サーバファイルまでのディレクトリ]
node [サーバファイル] &

というようにシェルを作成することで、 もし、プロセスが起動状態であれば、停止し、 サーバを起動させる、という意味になります。 = 再起動させるということですね。 ただ、このままだと、ファイルを更新するたびに、 サーバを再起動させるシェルを起動させなければならず、面倒ですね。 少し長くなってしまったので、以下の記事でもっと楽をできる方法をご紹介します。 https://took.jp/2019/10/10/nodejs-ファイルを編集%ef%bc%88更新%ef%bc%89するたびにサーバを再/