PortReaper
概要
PortReaper は、listen 中の TCP ポートを持つプロセスを一覧して終了できる macOS アプリです。vite や Rails、Node.js の開発サーバを止め忘れたまま何日も動かしてしまう、という状況を見つけて片付けるために作りました。
ポート番号だけでなく、プロセス名・プロジェクト名・起動からの経過時間・実行パスまで並べます。lsof -i
の結果を読んで PID を探し、kill
に渡す、という手順を画面の上で完結させます。
主な特徴
開発サーバを見分ける
node や vite、Rails など開発サーバらしいプロセスに DEV バッジを付けます。java や python のような汎用ランタイムは、コマンドラインに根拠があるときだけ対象にします。
どのプロジェクトかが分かる
プロセスの作業ディレクトリからプロジェクト名を出します。node が何行も並んだときに、どのリポジトリのサーバかをその場で見分けられます。
経過時間で並べ替え
起動からの経過時間を列に出し、長く動いているものから順に並べられます。止め忘れは古い行に溜まります。
確認してから終了
確認ダイアログを経て SIGTERM を送り、3 秒後も生きていれば SIGKILL に切り替えます。複数行をまとめて終了することもできます。
メニューバーから確認する
メニューバーのアイコンから、開発サーバの数と次回の通知時刻を確認できます。ここからそのまま終了もできるので、一覧のウィンドウを開かずに片付けられます。
決まった時刻に開発サーバが残っていると、macOS の通知で知らせます。常駐させておくサーバは通知から除外できます。
インストール
Homebrew でインストールできます。
brew install --cask kusumotoa/tap/portreaper