本文へスキップ
←  ホーム English

PortReaper

概要

PortReaper は、listen 中の TCP ポートを持つプロセスを一覧して終了できる macOS アプリです。vite や Rails、Node.js の開発サーバを止め忘れたまま何日も動かしてしまう、という状況を見つけて片付けるために作りました。

ポート番号だけでなく、プロセス名・プロジェクト名・起動からの経過時間・実行パスまで並べます。lsof -i の結果を読んで PID を探し、kill に渡す、という手順を画面の上で完結させます。

PortReaper のメインウィンドウ。ポート・プロセス・プロジェクト・経過時間・PID・アドレス・パスの列が並び、開発サーバの行に DEV バッジが付いている

主な特徴

開発サーバを見分ける

node や vite、Rails など開発サーバらしいプロセスに DEV バッジを付けます。java や python のような汎用ランタイムは、コマンドラインに根拠があるときだけ対象にします。

どのプロジェクトかが分かる

プロセスの作業ディレクトリからプロジェクト名を出します。node が何行も並んだときに、どのリポジトリのサーバかをその場で見分けられます。

経過時間で並べ替え

起動からの経過時間を列に出し、長く動いているものから順に並べられます。止め忘れは古い行に溜まります。

確認してから終了

確認ダイアログを経て SIGTERM を送り、3 秒後も生きていれば SIGKILL に切り替えます。複数行をまとめて終了することもできます。

メニューバーから確認する

メニューバーのアイコンから、開発サーバの数と次回の通知時刻を確認できます。ここからそのまま終了もできるので、一覧のウィンドウを開かずに片付けられます。

PortReaper のメニューバーパネル。開発サーバ 2 件 / 全 10 件と次回の通知時刻が表示され、各行に終了ボタンが並んでいる

決まった時刻に開発サーバが残っていると、macOS の通知で知らせます。常駐させておくサーバは通知から除外できます。

インストール

Homebrew でインストールできます。

brew install --cask kusumotoa/tap/portreaper