| name | acc-service-setup |
| description | Install and manage the ACC agent supervisor and optional NVIDIA proxy on systemd, launchd, or supervisord. Use when setting up a new agent or fixing broken services. |
| version | 2.0.0 |
| platforms | ["linux","macos"] |
| metadata | {"hermes":{"tags":["acc","services","systemd","launchd","supervisord"],"category":"infrastructure"}} |
ACC Service Setup
ACC no longer installs standalone queue or Hermes poll workers. Use one
supervisor service per agent; the supervisor starts tasks, bus, gateways,
and optional proxy children from the current runtime configuration.
systemd System Service
sudo tee /etc/systemd/system/acc-agent.service > /dev/null << 'EOF'
[Unit]
Description=ACC Agent Supervisor
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=USER_NAME
EnvironmentFile=-/home/USER_NAME/.acc/.env
Environment=PATH=/home/USER_NAME/.local/bin:/home/USER_NAME/.acc/bin:/usr/local/bin:/usr/bin:/bin
ExecStart=/home/USER_NAME/.acc/bin/acc-agent supervise
Restart=always
RestartSec=5s
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now acc-agent
systemd User Service
mkdir -p ~/.config/systemd/user
cat > ~/.config/systemd/user/acc-agent.service << 'EOF'
[Unit]
Description=ACC Agent Supervisor
After=network-online.target
[Service]
Type=simple
EnvironmentFile=-%h/.acc/.env
Environment=PATH=%h/.local/bin:%h/.acc/bin:/usr/local/bin:/usr/bin:/bin
ExecStart=%h/.acc/bin/acc-agent supervise
Restart=always
RestartSec=5s
[Install]
WantedBy=default.target
EOF
systemctl --user daemon-reload
systemctl --user enable --now acc-agent
loginctl enable-linger "$USER"
supervisord
sudo tee /etc/supervisor/conf.d/acc-agent.conf > /dev/null << 'EOF'
[program:acc-agent]
command=/home/USER_NAME/.acc/bin/acc-agent supervise
directory=/home/USER_NAME/.acc/workspace
user=USER_NAME
autostart=true
autorestart=true
startsecs=5
stopwaitsecs=10
stdout_logfile=/home/USER_NAME/.acc/logs/acc-agent.log
stderr_logfile=/home/USER_NAME/.acc/logs/acc-agent.log
environment=HOME="/home/USER_NAME",PATH="/home/USER_NAME/.local/bin:/home/USER_NAME/.acc/bin:/usr/local/bin:/usr/bin:/bin"
EOF
sudo supervisorctl reread && sudo supervisorctl update
sudo supervisorctl status acc-agent
launchd
mkdir -p ~/Library/LaunchAgents
cat > ~/Library/LaunchAgents/com.acc.agent.plist << 'EOF'
<?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.acc.agent</string>
<key>ProgramArguments</key>
<array>
<string>/Users/USER_NAME/.acc/bin/acc-agent</string>
<string>supervise</string>
</array>
<key>EnvironmentVariables</key>
<dict>
<key>HOME</key> <string>/Users/USER_NAME</string>
<key>PATH</key> <string>/Users/USER_NAME/.local/bin:/Users/USER_NAME/.acc/bin:/usr/local/bin:/usr/bin:/bin</string>
</dict>
<key>WorkingDirectory</key> <string>/Users/USER_NAME/.acc/workspace</string>
<key>KeepAlive</key> <true/>
<key>StandardOutPath</key> <string>/Users/USER_NAME/.acc/logs/acc-agent.log</string>
<key>StandardErrorPath</key> <string>/Users/USER_NAME/.acc/logs/acc-agent.log</string>
</dict>
</plist>
EOF
launchctl load ~/Library/LaunchAgents/com.acc.agent.plist
Verify
pgrep -af 'acc-agent supervise|acc-agent (tasks|bus|slack-ingest)|hermes .*gateway run' || true
source ~/.acc/.env 2>/dev/null || source ~/.ccc/.env 2>/dev/null
curl -sf -H "Authorization: Bearer $ACC_AGENT_TOKEN" \
"${ACC_URL}/api/agents/$AGENT_NAME" | python3 -m json.tool
Common Mistakes
- Do not install standalone legacy work-plane processes; the old queue subcommand has been removed.
- Do not install
hermes --poll; durable work is handled by acc-agent tasks.
- In user-mode systemd, omit
User= and use WantedBy=default.target.
- Run
loginctl enable-linger "$USER" for user services that must survive logout.