Question Impossible de démarrer mongodb par launchctl sur OS X Yosemite (10.10.2)


J'ai installé mongodb 2.4 via homebrew:

brew install homebrew/versions/mongodb24

Ensuite, j'ai créé un lien vers la configuration fournie par homebrew:

ln -sfv /usr/local/opt/mongodb24/homebrew.mxcl.mongodb24.plist ~/Library/LaunchAgents

Ce fichier contient les éléments suivants:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>homebrew.mxcl.mongodb24</string>
  <key>ProgramArguments</key>
  <array>
    <string>/usr/local/opt/mongodb24/bin/mongod</string>
    <string>--config</string>
    <string>/usr/local/etc/mongod.conf</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
  <key>KeepAlive</key>
  <false/>
  <key>WorkingDirectory</key>
  <string>/usr/local</string>
  <key>StandardErrorPath</key>
  <string>/usr/local/var/log/mongodb/output.log</string>
  <key>StandardOutPath</key>
  <string>/usr/local/var/log/mongodb/output.log</string>
  <key>HardResourceLimits</key>
  <dict>
    <key>NumberOfFiles</key>
    <integer>1024</integer>
  </dict>
  <key>SoftResourceLimits</key>
  <dict>
    <key>NumberOfFiles</key>
    <integer>1024</integer>
  </dict>
</dict>
</plist>

Et maintenant j'essaie de le démarrer et obtenir une erreur:

$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb24.plist
/usr/local/Cellar/mongodb24/2.4.12/homebrew.mxcl.mongodb24.plist: Operation not permitted

On dirait qu'il y a un problème avec les autorisations. Mais je ne suis pas sur. Comment puis-je résoudre ce problème?


6
2018-02-26 15:14


origine




Réponses:


J'ai résolu ce problème en utilisant services de brassage. Supprimer le lien symbolique en premier:

$ rm ~/Library/LaunchAgents/homebrew.mxcl.mongodb24.plist

Installez les services d'infusion:

$ brew tap gapple/services

Démarrer mongodb:

$ brew services start mongodb24
==> Successfully started `mongodb24` (label: homebrew.mxcl.mongodb24)

C'est tout!

METTRE À JOUR:

En fait, cela se produit à cause de tmux. Lorsque vous faites cela dans une session tmux:

$ brew services start redis
/Users/schfkt/Library/LaunchAgents/homebrew.mxcl.redis.plist: Operation not permitted
==> Successfully started `redis` (label: homebrew.mxcl.redis)

$ brew services list
Warning: No user-space services controlled by `brew services` running...

Vous obtenez le même résultat: "Opération non autorisée". Et les redis bien sûr ne sont pas commencés.

Mais tout fonctionne bien lorsque vous exécutez les mêmes commandes ne pas à l'intérieur d'une session tmux:

$ brew services start redis
==> Successfully started `redis` (label: homebrew.mxcl.redis)

$ brew services list
redis      started    82912 /Users/schfkt/Library/LaunchAgents/homebrew.mxcl.redis.plist

11
2018-02-26 22:02



Vous pouvez également utiliser les services d'infusion dans tmux si vous avez installé reattach-to-user-namespace brew install reattach-to-user-namespace  Alors vous devriez pouvoir courir reattach-to-user-namespace brew services start redis sans quitter tmux Plus de détails peuvent être trouvés ici: apple.stackexchange.com/questions/41412/... - Jim Miller