Comment activer la journalisation launchd sous OS X 10.6?
J'ai ajouté un nouveau démon qui ne démarre pas correctement (l'état est 1
).
Je veux déboguer le problème mais je n'ai pas pu trouver les launchd
journaux, ils ne sont pas dans /var/log/launchd.log
.
En supposant que vous essayez de consigner votre processus plutôt que launchd lui-même, si vous incluez les lignes suivantes dans le fichier plist launchd:
et rechargez le processus, toute journalisation ou impression interne à votre script sera capturée dans l’un de ces deux fichiers à chaque exécution. Bien que la rotation des fichiers semble être à vous. comme vous pouvez vous y attendre, si vous utilisez le même fichier dans les deux cas, l'erreur sera enregistrée et la sortie standard au même endroit.
Voir: Section Débogage des tâches launchd dans Création de démons de lancement et d'agents .
la source
Sous OS X 10.11 (El Capitan), vous pouvez utiliser
sudo launchctl debug <service-target> --stdout --stderr
pour activer la journalisation ponctuelle, si vous ne souhaitez pas utiliser l'option de système de fichiers suggérée par @peter.Beaucoup de choses sont différentes dans la mise en œuvre actuelle de
launchctl
, et<service-target>
c'est un peu bizarre. Par exemple, supposons que j’ai configuré un service local portant~/Library/LaunchAgents/dev.localmon.plist
l’étiquettedev.localmon
. Son<service-target>
estgui/$UID/dev.localmon
, où$UID
est votre nom d'utilisateur, qui, depuis que vous utilisez cela à la CLI, votre shell interpole pour vous.Donc, en supposant que mon
dev.localmon
service se bloque au démarrage (c’était), je pourrais appeler le suivant pour avoir lelaunchctl
tuyau stdout et stderr du processus dans mon shell la prochaine fois (et seulement la prochaine fois que le service démarrera):Puisque cela se bloque avec les TTY ouverts et prêts, allez sur un autre terminal et exécutez:
De retour dans le premier terminal, vous devriez voir la sortie. (Bizarrement, il ne ferme pas lorsque le processus de service est mort, vous devrez donc appuyer sur Ctrl-C.)
Par ailleurs, une fois que vous avez corrigé votre fichier de configuration avec le chemin ou l'environnement PATH précédent, vous devez toujours utiliser l'ancien en
launchctl unload ~/Library/LaunchAgents/dev.localmon.plist && launchctl load ~/Library/LaunchAgents/dev.localmon.plist
deux étapes car launcache
sous-commande de la documentation a les effets suivants:Yay pour la stratégie de publication post-emploi d'Apple: "Bougez vite et cassez les choses"
la source
sudo launchctl debug
sort avecCould not find domain for
pour moi