J'ai un fichier .plist launchctl dans / Library / LaunchDaemons comme suit:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>david.ports.slocate.home.updatedb</string>
<key>ProgramArguments</key>
<array>
<string>/opt/local/bin/slocate</string>
<string>-U</string>
<string>/Users/david</string>
<string>-o</string>
<string>/Users/david/slocate_david.db</string>
</array>
<key>Umask</key>
<string>077</string>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>5</integer>
<key>Minute</key>
<integer>45</integer>
</dict>
</dict>
</plist>
Pour ceux qui se posent des questions, j'utilise le port slocate de MacPorts au lieu de la base de données de localisation native fournie avec OS X. Ce travail .plist met à jour la base de données slocate spécifique à mon répertoire personnel à 5:45 tous les jours. Le paramètre Umask de 077 rend le fichier de sortie lisible uniquement par moi. Cependant, le fichier est créé avec la propriété de root; pas ce que je veux.
Existe-t-il un moyen de spécifier la propriété du fichier de sortie au lieu de la valeur par défaut de root? Je réalise que je peux l'exécuter en tant que LaunchAgent sous ~ / Library / LaunchAgents, mais je préfère que le travail soit exécuté, que je sois connecté ou non, et donc en tant que LaunchDaemon.
Je suis sous OS X 10.10.3 Yosemite.
Au lieu d'
/Library/LaunchDaemons
utiliser l'utilisateur basé~/Library/LaunchAgents
dans votre bibliothèque d'utilisateurs. Ensuite, le processus sera exécuté en tant qu'utilisateur connecté au lieu du compte root.la source