npm run serve して ctrl+z すると、次回起動時からポート番号が勝手にインクリメントされて困った

仕事で使う技術的なこと

症状

npm run serve してから、ctrl + c としようとしたところを、誤って ctrl + z としてしまいました。

すると、一応見た目上制御が戻ってきたので、改めて npm run serve すると、今までポート8080で起動していたのに8081で起動するようになりました。

これを繰り返すとずっとポートがインクリメントされていきました。

ちょっと困ったなと思い、 npm run serve -- --port 8080 で8080番を指定して起動してみたのですが、8080番で起動してくれません。

解決策

ググってみると ctrl + z は、プロセスを kill するのではなく、プロセスを一時停止させるコマンドであることがわかりました。
つまり、プロセスが残りっぱなしの状態で新しく run するから、npm 側が気を利かしてくれてポートをインクリメントして起動してくれていたのでした。

この場合、プロセスを kill する必要があるので、以下のように fg というコマンドを実行します。

$ fg
npm run serve   # 直近の一時停止していたプロセスに制御が戻る
# そのため、直近 num run serve していた場合は、終了を待つ状態に戻ります
# ここで ctrl + c を押すと、num run serve プロセスが kill されます

このタイミングで ctrl + c すると、戻ってきたプロセスに対して kill できます。

これで、再度 npm run serve すると、ポート8080で起動することができました。

参考

コメント

タイトルとURLをコピーしました