Pour exécuter une commande au démarrage sous OS X, vous devez utiliser launchd
.
Si vous ne voulez pas utiliser Lingon , vous devez créer une liste de propriétés launchd
. Il s'agit d'un fichier XML, vous pouvez donc le faire avec votre éditeur de texte préféré ou bien utiliser l'éditeur de liste de propriétés qui est installé avec les outils de développement de Mac OS X. Créez le suivant :
<?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>some.meaningful.name</string> <!-- org.mongodb.mongodb perhaps? -->
<key>OnDemand</key>
<false/>
<key>UserName</key>
<string>anAppropriateUser</string>
<key>GroupName</key>
<string>anAppropriateGroup</string>
<key>ProgramArguments</key>
<array>
<string>/Applications/MongoDB/bin/mongod</string>
<string>--dbpath</string>
<string>/usr/local/mongo/data</string>
<string>--fork</string>
<string>--logpath</string>
<string>/usr/local/mongo/log</string>
</array>
</dict>
</plist>
Enregistrez ce fichier dans /Library/LaunchAgents/some.meaningful.name.plist
(vous aurez besoin d'un compte administrateur et/ou sudo
), puis ouvrez un terminal et faites-le :
sudo launchctl load /Library/LaunchAgents/some.meaningful.name.plist
Ceci fera que launchd chargera l'élément qui fera démarrer MongoDB au démarrage. En bonus, launchd
le surveillera et, s'il sort pour une raison quelconque, il sera redémarré. Pour se débarrasser de l'objet, il suffit de remplacer load dans la commande ci-dessus par un déchargement.