Comment charger des démons à l’échelle du système sur MacOS

J’essaie de charger mon application démon avec cette commande launchctl load /Library/LaunchDaemons/myPlistFileName Cela fonctionne bien, mais uniquement lorsque mon utilisateur est connecté au système.

Comment puis-je charger mon application Deamon, qui restra chargée sans qu’aucun utilisateur ne soit connecté au système (comme les services Windows)?

La commande sudo launchctl load /Library/LaunchDaemons/myPlistFileName me donne une erreur -> rien trouvé à charger

Quelle est la bonne façon de faire cela?


EDIT: My Plist-File

 Label com.myCompany.myApplication ProgramArguments  open -g /Applications/myAppDir/myApplication.app  UserName root GroupName wheel KeepAlive  OnDemand  

Actuellement, c’est le cas: au démarrage du système, mon démon commence avec les droits root. Une fois connecté avec mon compte d’utilisateur, le processus démon redémarre et mon utilisateur est le nouveau propriétaire du processus.

En utilisant “sudo launchctl load ; sudo launchctl start ” ou, sur les nouvelles versions de launchctl, “sudo launchctl submit -l

Il est difficile de déterminer pourquoi votre commande “sudo launchctl” a échoué sans voir le PLIST, mais vous devez vous assurer que les permissions pour le PLIST sont lisibles pour tout le monde (mais inscriptibles uniquement par root: wheel ou root: admin), vous devriez assurez-vous que les champs “UserName” et “GroupName” ont bien été donnés, vous devez vous assurer que “Program” donne un chemin absolu au programme en question (et ne pas, par exemple, dépendre du paramètre particulier de l’utilisateur PATH) variable d’environnement), et les champs “WorkingDirectory” et “EnvironmentVariables” doivent être correctement définis, le cas échéant.

Voir aussi: man launchd.plist

MODIFIER:
Vous pouvez également essayer d’exécuter les commandes “stop” et “unload” avant d’essayer de faire le “sudo … load”.

MODIFIER:
Maintenant que vous avez téléchargé votre fichier PLIST, votre problème est clair: vous ne pouvez pas utiliser la commande open lorsqu’elle est exécutée en tant qu’autre utilisateur. Voir l’ exécution de l’application GUI OS X en tant qu’utilisateur root . De plus, les clés KeepAlive et OnDemand sont, j’en suis sûr, gratuites. Je pense que ceux-ci peuvent être supprimés.