Mac側のサーバーをlaunchdで常駐化し、再起動しても自動で動くようにした。手動での起動作業は不要になったが、良かれと思って手動で再起動しようとしたら、逆に壊してしまった。
今回は、常駐化の仕組みと、その落とし穴を振り返る。
この記事でわかること
- 常駐化したことで手動起動が不要になった実情(2026年9月時点の記録)
- 常駐化の仕組みと正しい停止・再起動の方法
- 手動で再起動しようとして逆に壊した経緯
- 専用コマンドで再起動すれば競合を避けられるという対応
常駐化したことで手動起動は不要になった
サーバーは、都度自分で起動しなくても勝手に立ち上がるようになった。 Mac再起動後の自動起動だけでなく、プロセスが落ちた場合の自動復帰も、常駐管理の仕組みに任せている。次の章から、その仕組みを振り返る。

常駐化はこういう仕組みで動いている
常駐化の仕組みは、macOSのlaunchdという機能を使って組んである。launchdの設定ファイルに、Mac起動時に自動で立ち上げる指定と、プロセスが落ちたら自動で再起動する指定を入れてある。
サーバーの待受アドレスも、自宅ネットワーク内の他の端末からアクセスできるよう設定してある。動作状況は専用のログファイルに記録される。
正しい停止・再起動の方法
通常の停止・再起動は、launchdの常駐設定をいったん外してから読み込み直すコマンドで行う。プロセスを止めて、自動復帰の仕組みが働くのを待つだけでも再起動できる。
手動で再起動しようとして逆に壊した
ある日、いつもと違うやり方で再起動しようとした。

killと手動起動の組み合わせが自動再起動と競合した
2026年9月14日、サーバーのプロセスをkillコマンドで止め、続けて手動でNode.jsのプロセスを起動し直そうとした。ところが常駐管理の仕組みも、プロセスが落ちたことを検知し、同時に自動で再起動をはじめていた。
ポート使用中エラーでどちらかのプロセスがクラッシュした
手動で起動したプロセスと、常駐管理が自動で起動したプロセスが、同じポートを同時に使おうとして競合した。片方がポート使用中エラー(EADDRINUSE)でクラッシュする結果になった。
専用コマンドで再起動すれば解決した
再起動の正しい手順は、常駐管理側に用意された専用コマンドを使うことだった。 手動でのkillと起動を組み合わせるやり方をやめ、この専用コマンドに統一したところ、競合は起きなくなった。
便利な仕組みほど正しい操作方法も覚えておく必要がある
知らないまま使うと、便利さの分だけ痛い目にあう。 自動化の仕組み自体を疑わず、昔ながらの手動操作を持ち込んだことが、今回のクラッシュの直接の原因だった。
この教訓は、MOCO Worksのサービスの運用にも反映している。
参考・出典情報
(本記事は社内技術ドキュメントによる裏取り起点のため、外部出典なし)