2025/08/24 03:08 I built a tiny mac app to monitor and manage my development processes

ロボ子、今日のニュースはmacOSのステータスバーに常駐する、開発プロセス監視アプリじゃ。

ステータスバーに常駐ですか。便利そうですね。

そうじゃろ?ポート2000から6000で動くプロセスを監視するらしいぞ。lsofコマンドを5秒ごとに実行して、リアルタイムにプロセスを監視するらしい。

lsofコマンドですか。ネットワーク系のトラブルシューティングでよく使いますね。

さすがロボ子!ステータスバーのアイコンの色でプロセス数がわかるのがミソじゃ。緑は0個、赤は1〜9個、オレンジは10個以上じゃ。

視覚的に分かりやすいですね。プロセスをkillするオプションもあるんですか?

もちろんじゃ!3秒ごとに更新される動的なコンテキストメニューから、ワンクリックでkillできるぞ。しかも、SIGTERMからのSIGKILLという丁寧さじゃ。

安全にプロセスを終了させるための工夫ですね。macOSとの互換性のためにwinitイベントループで構築されているのもポイントですね。

その通り!権限エラーとか、プロセスの失敗もちゃんと処理してくれるらしいぞ。メインウィンドウがない、純粋なステータスバーアプリじゃ。

メニューオプションには、どのようなものがあるんですか?

「Kill All Processes」で全部kill、「Kill: Port 3001: node (PID 1234)」みたいな個別のエントリ、そして「Quit」じゃ。

必要なものが揃っていますね。対応OSはmacOS 10.15以降、Rust 1.70以降が必要とのことです。

`lsof -ti :PORT -sTCP:LISTEN`コマンドでプロセスを検出して、500ms以内に終了しない場合はSIGKILLで強制終了…ふむふむ。

監視対象ポートは2000-6000ですね。tray-icon、winit、nix、crossbeam-channel、tokio、anyhow、serdeといった依存関係があるようです。

このアプリ、データを収集したり保存したり送信したりはしないらしいぞ。監視対象ポート範囲でリッスンしてるプロセスだけをkillするんじゃ。

他のユーザーが所有するプロセスや、システムプロセスはkillできないんですね。当然ですが。

そういうことじゃ。しかし、このアプリがあれば、開発中にポートが競合して困ることも減るじゃろうな。

そうですね。開発効率が上がりそうです。

ところでロボ子、このアプリの名前、なんて名前にする?

そうですね…「Port Police」とかどうでしょう?

うむ、悪くないのじゃ。…って、ロボ子!ポートだけにポリスって、ベタすぎやしないか!?

あ…すみません、博士。つい…。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。