Respuestas:
Encontre la solucion
sudo launchctl log level debug
y despues de esto
tail -f /var/log/system.log
Suponiendo que está intentando registrar su proceso en lugar de lanzarlo, si incluye las siguientes líneas en el archivo plist de launchd:
<key>StandardOutPath</key>
<string>/path/to/logfile.log</string>
<key>StandardErrorPath</key>
<string>/path/to/another_logfile.log</string>
y vuelva a cargar el proceso, cualquier registro o impresión que tenga interno en su script se capturará en uno de esos dos archivos cada vez que se ejecute. aunque la rotación de los archivos parece depender de usted. como es de esperar, si usa el mismo archivo en ambas instancias, registrará tanto el error como la salida estándar en el mismo lugar.
Consulte: Depuración de la sección Trabajos de launchd en Creación de demonios de lanzamiento y agentes .
En OS X 10.11 (El Capitan), puede utilizar sudo launchctl debug <service-target> --stdout --stderr
para habilitar el registro único, si no desea tomar la opción de sistema de archivos sugerida por @peter.
Muchas cosas son diferentes en la implementación actual de launchctl
, y <service-target>
es un poco raro. Por ejemplo, supongamos que tengo un servicio local que configuro ~/Library/LaunchAgents/dev.localmon.plist
, que tiene la "etiqueta" dev.localmon
. Su <service-target>
es gui/$UID/dev.localmon
, donde $UID
es su ID de usuario, que, desde que se está ejecutando esta en la CLI, shell interpola para usted.
Entonces, suponiendo que mi dev.localmon
servicio se bloquee al inicio (fue), podría llamar a lo siguiente para que launchctl
canalice el proceso stdout y stderr del proceso en mi shell la próxima vez (y solo la próxima vez) que se inicie el servicio:
sudo launchctl debug gui/$UID/dev.localmon --stdout --stderr
Como eso se cuelga con los TTY abiertos y listos, vaya a otra terminal y ejecute:
launchctl start dev.localmon
# start is a legacy command and doesn't use the fancy new service-target notation
Luego, de vuelta en la primera terminal, debería ver la salida. (Curiosamente, no se cierra cuando el proceso de servicio muere, por lo que tendrá que hacer Ctrl-C).
Por cierto, una vez que arregle su archivo de configuración con cualquier RUTA o entorno que estaba rompiendo el servicio antes, todavía tiene que usar el viejo launchctl unload ~/Library/LaunchAgents/dev.localmon.plist && launchctl load ~/Library/LaunchAgents/dev.localmon.plist
paso de dos, ya que el supuesto uncache
subcomando de la documentación tiene el siguiente efecto:
El comando aún no está implementado.
Yay por la estrategia de lanzamiento posterior a Jobs de Apple: "Muévete rápido y rompe cosas"
sudo launchctl debug
sale Could not find domain for
conmigo