Node.js のプロセスが立ち上がりっぱなしになった際に kill する方法
9 years ago
gulp で express, watch と2つのプロセスを立ち上げてるときに片方でエラーがでると片方だけプロセスが立ち上がった状態になってしまうことがあります.
その状態でもう一度同じ gulp タスクを実行すると下記のようなエラーがでて再起動できなくなります.
gulp
[17:24:35] Using gulpfile <project_path>/gulpfile.js
[17:24:35] Starting 'watch'...
[17:24:35] Finished 'watch' after 26 ms
[17:24:35] Starting 'server'...
[17:24:35] Finished 'server' after 9.16 ms
[17:24:35] Starting 'default'...
[17:24:35] Finished 'default' after 5.26 μs
livereload[tiny-lr] listening on 35729 ...
events.js:85
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE
at exports._errnoException (util.js:746:11)
at Server._listen2 (net.js:1156:14)
at listen (net.js:1182:10)
at Server.listen (net.js:1267:5)
at EventEmitter.listen (<project_path>/node_modules/express/lib/application.js:617:24)
at Object.<anonymous> (<project_path>/src/app.js:98:18)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
プロセスが残ってるのが原因ですね. node のプロセスを kill すれば良いだけなのですが方法は2通りあります.
プロセス ID を調べて kill する
下記のコマンドでプロセス ID を調べて
$ ps aux | grep node
下記のコマンドでプロセスを kill できます.
$ kill -9 <PROCESS_ID>
node プロセスを全て kill する
他の node プロセス全部も死んじゃいますが下記のコマンドだと手っ取り早く kill できます.
$ killall node
以上, 備忘録でしたー