2026年5月4日月曜日

Launchdによる「自律起動」――Macを開けば、そこにAIがいる

 

【OS起動時の「透明な」自動化】

コマンドを叩いてサーバーを立てるのも一興だが、真の「達成感」は、Macを立ち上げた瞬間にすべての環境が整っている「透明な自動化」にある。

macOS標準のサービス管理システム launchd を使い、ログインした瞬間に M1 Max(リモート)と M4 Max(ローカル)の AI サーバーをバックグラウンドで目覚めさせる設定を組んだ。

1. M4 Max(ローカル:Qwen3.5)の plist 作成

まずはメイン機 M4 Max 自身で、爆速の qwen3.5-9b を立ち上げる設定だ。

ファイルパス: ~/Library/LaunchAgents/com.hidenari.qwen35.plist

----XML---
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.hidenari.qwen35</string>
    <key>ProgramArguments</key>
    <array>
        <!-- 1. 実行ファイルの場所を特定したフルパスへ修正 -->
        <string>/Users/hidenari/llama.cpp/build/bin/llama-server</string>
        <string>-m</string>
        <string>/Users/hidenari/models/Qwen3.5-9B-Q8_0.gguf</string>
        <string>-c</string>
        <string>65536</string>
        <!-- 2. 最新版の引数名 (--n-gpu-layers) へ修正 -->
        <string>--n-gpu-layers</string>
        <string>99</string>
        <string>--port</string>
        <string>8080</string>
        <!-- 3. 引数が必要になった --flash-attn の形式を修正 -->
        <string>--flash-attn</string>
        <string>on</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>WorkingDirectory</key>
    <string>/Users/hidenari/models</string>
    <key>StandardOutPath</key>
    <string>/tmp/qwen35.log</string>
    <key>StandardErrorPath</key>
    <string>/tmp/qwen35_error.log</string>
</dict>
</plist>


2. M4 Max(Local):9Bを瞬時に立ち上げる

次に、手元のM4 Maxで、最新の Qwen3.5-9B を起動する。 /Users/hidenari/models/ に移動し

あえての wget で落とした GGUF を叩く。

------Bash-----
cd /Users/hidenari/models/ && ./llama-server \
-m Qwen3.5-9B-Q8_0.gguf \ -c 65536 \ --ngl 99 \ --port 8081 \ --flash-attn

0 件のコメント:

コメントを投稿

Launchdによる「自律起動」――Macを開けば、そこにAIがいる

  【OS起動時の「透明な」自動化】 コマンドを叩いてサーバーを立てるのも一興だが、真の「達成感」は、Macを立ち上げた瞬間にすべての環境が整っている「透明な自動化」にある。 macOS標準のサービス管理システム  launchd  を使い、ログインした瞬間に M1 Max(リモ...