¿Cómo activo el registro de launchd en OS X 10.6?
Agregué un nuevo demonio que no se inicia correctamente (el estado es 1
).
Quiero depurar el problema pero no pude encontrar launchd
registros, no están en /var/log/launchd.log
.
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:
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 .
fuente
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>
esgui/$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 quelaunchctl
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:Como eso se cuelga con los TTY abiertos y listos, vaya a otra terminal y ejecute:
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 supuestouncache
subcomando de la documentación tiene el siguiente efecto:Yay por la estrategia de lanzamiento posterior a Jobs de Apple: "Muévete rápido y rompe cosas"
fuente
sudo launchctl debug
saleCould not find domain for
conmigo