npmが異常終了した場合に発生する起動エラー

npmサーバーをデバッグで起動していて、例のWindowsアップデートで強制再起動をかけられてしまったため妙なことになった。大したことないだろうと思って再度起動してみると下記のようなエラーを吐くようになった。一応サーバーを再起動してみたんだが、同じエラーが出るのは不可解。というのもエラーの内容を見る限りポート80が既に使われているというような内容のようだが、ポート80は私のコードでは使ってないのだが。それに再起動までしたのに。

events.js:165
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRINUSE :::80
    at Server.setupListenHandle [as _listen2] (net.js:1342:14)
    at listenInCluster (net.js:1383:12)
    at Server.listen (net.js:1471:7)
    at Object. (/home/nakahira/nodejs/server.js:52:4)
    at Module._compile (module.js:649:30)
    at Object.Module._extensions..js (module.js:660:10)
    at Module.load (module.js:561:32)
    at tryModuleLoad (module.js:501:12)
    at Function.Module._load (module.js:493:3)
    at Function.Module.runMain (module.js:690:10)
Emitted 'error' event at:
    at emitErrorNT (net.js:1362:8)
    at process._tickCallback (internal/process/next_tick.js:114:19)
    at Function.Module.runMain (module.js:692:11)
    at startup (bootstrap_node.js:194:16)
    at bootstrap_node.js:666:3

psコマンドで該当するプロセスをkillしてみるかと調べたがよくわからないので、ポート80を使っているかもしれないプロセスを強制的にkill

kill -9 $(lsof -t -i:80)

これでnpm startとしたら起動するようになったが、まだ正常稼働にはいたらない。

追記で、異常終了した場合にnpmのpackage.jsonというファイルが紛失していることを確認した。npm init -yで復帰することはできたが色々とわからない現象が多い。

コメントを残す

メールアドレスが公開されることはありません。