Así que tengo un plist para mantener monit en funcionamiento:
<?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 sigue funcionando sin importar lo que haga.
El proceso se muestra así (nótese que no aparece la ruta binaria, sólo 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 plist de launchd para que realmente detenga el maldito proceso cuando quiera que se detenga?