Je voudrais exécuter mongod en arrière-plan comme une chose toujours présente. Quelle serait la meilleure façon de faire cela? Un peu comme la façon dont je peux exécuter MySQL au démarrage et il est toujours là en arrière-plan. Peut-être que ce ne sont que quelques scripts bash, mais ce serait bien d'entendre s'il y a une meilleure façon. Si c'est juste bash - à quoi cela ressemblerait-il? Merci.
Le démon MongoDB (mongod) a une option de ligne de commande pour exécuter le serveur en arrière-plan ...
--fork
Cette option de ligne de commande nécessite que vous spécifiez également un fichier dans lequel enregistrer les messages (car il ne peut pas utiliser la console actuelle). Un exemple de cette commande ressemble à:
mongod --fork --logpath /var/log/mongod.log
Vous pouvez mettre ceci dans un fichier de script bash /etc/init.d/mongod. Et puis pour que le service s'exécute au démarrage, créez les liens symboliques standard (S ## & K ##) à l'intérieur de /etc/rc#.d/. Voici un tutoriel qui explique ce processus plus en détail. Faites défiler jusqu'à la section intitulée "Activation du script init". Cela a également l'avantage supplémentaire de pouvoir exécuter des commandes comme ...
service mongod status
service mongod start
service mongod stop
Puisque vous êtes sur un Mac, vous devez utiliser Homebrew pour installer MongoDB (vous devrez installer Homebrew si vous ne l'avez pas encore fait):
brew install mongodb
Supposons que la version installée s'appelle 2.0.6-x86_64
. Ajoutez ensuite le fichier plist LaunchAgent qu'il génère pour vous:
mkdir -p ~/Library/LaunchAgents
cp /usr/local/Cellar/mongodb/2.0.6-x86_64/homebrew.mxcl.mongodb.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist
Cela lancera mongod
en arrière-plan maintenant et à chaque redémarrage de votre ordinateur.
essayez d'exécuter la commande suivante:
mongod --fork --syslog
Classiquement, pour fonctionner en arrière-plan, commencez simplement par
Nohup some_command -pour lancer &
Voilà donc Nohup &, mettez la commande que vous souhaitez exécuter en arrière-plan entre Nohup et &. Il fonctionnera comme vous, il continuera à fonctionner après la fermeture du terminal ou la déconnexion. Vous pouvez le démarrer en tant qu'autre utilisateur via Sudo. Pour le faire fonctionner au démarrage, ajoutez-le au remplacement des scripts init (je ne sais pas comment ils l'appellent). Il écrira toute sortie dans un fichier où vous l'avez appelé Nohup.out
La meilleure façon de faire fonctionner un programme au démarrage sur OS X est de créer un LaunchDaemon (voir documentation d'Apple , et jetez un œil à certains des démons fournis par Apple dans/System/Library/LaunchDaemons ) et installez-le dans/Library/LaunchDaemons. Lingon peut vous aider à créer le fichier .plist.