Eu me deparei com essa pergunta enquanto tentava lembrar como eu fiz isso sozinho, mas acho que re-encontrei a solução. Eu segui as instruções em este post da lista de discussão ; tem alguns anos, mas ainda funciona para mim no macOS Sierra.
Se essa postagem ficar indisponível, veja uma cópia das principais informações contidas nela. Basicamente, uma vez que você tenha a configuração upsmon
configurada da maneira desejada, basta criar um arquivo .plist (simplesmente um arquivo de texto com a extensão .plist), colocá-lo no diretório correto e, em seguida, reiniciar. Eu usei o texto textual do post para o arquivo .plist e ele continua strong para mim.
Especificamente, você pode criar um arquivo .plist com o seguinte conteúdo:
<?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>org.networkupstools.upsmon</string>
<key>OnDemand</key>
<false/>
<key>ProgramArguments</key>
<array>
<string>/opt/local/sbin/upsmon</string>
<string>-D</string>
</array>
</dict>
</plist>
Em seguida, salve-o com um nome como org.networkupstools.upsmon.plist
em /Library/LaunchDaemons
e ele deve iniciar o serviço automaticamente na inicialização a partir desse ponto.