自宅サーバーで Docker を使って各種サービスを公開しているため、OrbStack(Docker)が正常に動作しないと日常の業務やサービス利用に大きな支障が出る。
今回、macOS 上で OrbStack を起動しようとしたところ、Docker コンテナはもちろん、アプリ自体も全く立ち上がらず即座に終了してしまう現象に遭遇し、非常に焦った。
ここでは、その原因調査と復旧までの手順を記録しておく。
OrbStack の Host exit diagnostics には次のように表示されていた。
reason: failed to start
raw wait status: 256 (0x00000100)
raw flags: 0x86000000
exit detail: nonevmgr.log には次の1行だけが記録されていた。
🌲 vmgr | time="07-28 05:18:17" level=fatal msg="vmgr is already running (socket)"エラーメッセージを素直に読むなら、「vmgr が自分のソケットの存在を見て、既に別インスタンスが起動中だと判断している」ということになる。ただし OrbStack 自体は落ちていて Docker も一切使えない状態なので、額面通りには受け取れない。
環境
| 項目 | 値 |
|---|---|
| OS | macOS 15.7.7 (Build 24G720) |
| OrbStack | 2.2.1 |
調査
1. まずプロセスの実態を確認する
「already running」という言葉を疑って、実際に vmgr プロセスが動いているかを ps で確認した。
ps aux | grep -i -E "orbstack|vmgr" | grep -v grep結果、以下のプロセスが既に存在していた。
user 644 ... 3740:13.12 OrbStack Helper vmgr -build-id 1780592975 -handoff2. このプロセスがいつから生きているかを確認する
PID が分かったので、起動時刻と経過時間を確認した。
ps -p 644 -o pid,lstart,etime,commandPID STARTED ELAPSED COMMAND
644 土 7/11 13:03:18 2026 16-16:18:01 ... vmgr -build-id 1780592975 -handoff16日16時間以上動き続けているプロセスだった。今回起動しようとした新しい OrbStack とは別の、古いセッションの生き残りだと分かる。
3. launchd 管理下かどうかを確認する
OrbStack のヘルパープロセスは本来 launchd によってライフサイクル管理されているはずなので、念のため確認した。
launchctl list | grep -i orbstack結果は空だった。つまりこの vmgr プロセスは launchd の管理から外れた孤立プロセス(オーファン)になっていた。OrbStack のアップデートやスリープ/復帰のタイミングで親プロセスとの紐付けが切れ、終了されずに残り続けたのではないかと推測している。
4. ソケットファイルの所在を確認する
ls -la ~/.orbstack/run/~/.orbstack/run/ 配下には vmcontrol.sock など複数のソケットファイルが存在し、これらを古い vmgr プロセスが掴んだままになっていた。新しい OrbStack が起動時にこのソケットを見て「既に起動中」と誤検知し、fatal で即終了していた、という流れが確定した。
原因
OrbStack のヘルパープロセス(vmgr)が何らかの理由で launchd の管理から外れて孤立し、~/.orbstack/run/ 配下のソケットファイルを掴んだまま16日以上残存していた。新しい OrbStack の起動時、vmgr は自身のソケットが既に使用中であることを検知し、実際には正常なインスタンスが存在しないにもかかわらず「already running」と判断して起動を拒否していた。
解決手順
孤立している古い vmgr プロセスの PID は調査の手順1〜2で分かっている(644)。まずは通常の kill を試した。
kill 644数秒待っても終了せず、プロセスは生き残ったままだった。kill -9 で強制終了する。
kill -9 644プロセスが消えたことを確認する。
ps -p 644 -o pid,commandOrbStack を再起動する。
open -a OrbStack新しい vmgr プロセスが起動し、vmgr.log にエラーが出ていないこと、orb status が Running を返すことを確認して解決とした。
orb status
# => Running新しい vmgr プロセス(別 PID)が正常に起動し、Docker のネットワークブリッジやポートフォワードも正常にログへ出力されることを確認できた。以降 OrbStack は問題なく利用できている。
学んだこと・今後の対策
- OrbStack が「起動に失敗する」場合、必ずしもアプリ自体が壊れているとは限らず、古いヘルパープロセスが居座っていて新しい起動を妨げているだけのケースがある
launchctl listに出てこない OrbStack 関連プロセスがps auxには出てくる場合、それは孤立プロセスの強いサインになる- 同様の症状が繰り返し起きるようなら、OrbStack アプリのアップデート後にヘルパーが正しく再起動されていない可能性があるため、ヘルパー一式(
dev.orbstack.OrbStack.privhelperを含む)のクリーンな再起動や再インストールを検討する
まとめ
「vmgr is already running (socket)」というエラーは字面だけ見ると多重起動の警告に見えるが、今回は launchd の管理から外れて残り続けた古いヘルパープロセスがソケットを掴んだままになっているケースだった。ps aux と launchctl list を突き合わせて孤立プロセスを特定し、kill -9 で片付けてから再起動すれば復旧する。
| 状況 | 対処法 |
|---|---|
| OrbStack が起動直後に落ちる | vmgr.log と Host exit diagnostics でエラー内容を確認 |
| 「already running」系のエラーが出る | `ps aux |
| プロセスは存在するが launchd に出てこない | 孤立プロセスとして kill -9 で終了 |
| 終了後も再現する | ヘルパー一式のクリーンな再起動・再インストールを検討 |
同じ症状に困っている人の参考になれば幸いだ。