Skip to content

LaunchDaemon

Prerequisites#

Emcee should be preinstalled on each host. Installation.

Emcee queue server is expected to be shared among Android and iOS workers. Proceed to Android doc to learn how to deploy Emcee queue on Linux using Kubernetes.

Example LaunchDaemon worker config#

<?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><emcee></string>

  <key>ProgramArguments</key>
  <array>
    <string>/opt/homebrew/opt/emcee/libexec/emcee-ios</string>
    <string>distWork</string>
    <string>--hostname=<%= @hostname %></string>
    <string>--queue-server=http://queue-server</string>
  </array>

  <key>RunAtLoad</key><true/>
  <key>KeepAlive</key><true/>
  <key>SessionCreate</key><true/>
  <key>UserName</key><string>_emcee</string>
  <key>GroupName</key><string>staff</string>
  <key>WorkingDirectory</key><string>/opt/emcee</string>
  <key>StandardErrorPath</key><string>/var/log/emcee/stderr.log</string>
  <key>StandardOutPath</key><string>/var/log/emcee/stdout.log</string>
</dict>
</plist>

Config above is template actually. Do not forget to substitute effective hostname

queue-server domain should be resolvable in your network

Distributing and applying this confing may be done with Puppet, Ansible, etc. It is out of scope of this topic.