Así que tengo un plist para mantener monit funcionando:
<?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.monit.service</string>
<key>KeepAlive</key>
<true/>
<key>ProgramArguments</key>
<array>
<string>/usr/local/Cellar/monit/5.10/bin/monit</string>
<string>-d 60</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StandardOutPath</key>
<string>/var/log/monit.log</string>
</dict>
</plist>
Puedo hacer launchctl load /Library/LaunchDaemons/com.monit.service.plist
para iniciar el servicio, pero launchctl unload /Library/LaunchDaemons/com.monit.service.plist
no lo detendrá. Puedo ver que el proceso se sigue ejecutando sin importar lo que haga.
El proceso se muestra así (observe cómo no se muestra la ruta binaria, solo el último argumento):
salida de ps aux:
root 14656 0.0 0.0 2482248 1656 ?? S 6:55PM 0:00.09 -d 60
¿Cómo puedo escribir el launchd plist para que realmente detenga el maldito proceso cuando quiera que se detenga?