Me gustaría ejecutar mongod en segundo plano como algo siempre presente. Cuál sería la mejor forma de hacer esto? Algo así como la forma en que puedo ejecutar MySQL al inicio y siempre está ahí ejecutándose en segundo plano. Tal vez son solo algunos scripts de bash, pero sería bueno saber si hay una mejor manera. Si es solo bash, ¿cómo sería? Gracias.
mac-osx
unix
background-process
mongodb
Ryan Montgomery
fuente
fuente
npm install pm2 -g
+pm2 start mongod
+pm2 save
es una buena forma multiplataforma para mantener cualquier proceso en segundo plano ejecutándose en sesiones.Respuestas:
El demonio MongoDB (mongod) tiene una opción de línea de comandos para ejecutar el servidor en segundo plano ...
Esta opción de línea de comandos requiere que también especifique un archivo para registrar mensajes (ya que no puede usar la consola actual). Un ejemplo de este comando se ve así:
Puede poner esto en un archivo de script /etc/init.d/mongod bash. Y luego, para que el servicio se ejecute al inicio, cree los enlaces simbólicos estándar (S ## & K ##) dentro de /etc/rc#.d/. Aquí hay un tutorial que explica este proceso con más detalle. Desplácese hacia abajo hasta la sección titulada "Activación del script de inicio". Esto también tiene el beneficio adicional de poder ejecutar comandos como ...
fuente
--syslog
en la que todo está escrito en el registro del sistema.Como estás en una Mac, debes usar Homebrew para instalar MongoDB (necesitarás instalar Homebrew si aún no lo has hecho):
Digamos que la versión que se instaló se llama
2.0.6-x86_64
. Luego agregue el archivo plist LaunchAgent que genera para usted:Esto se iniciará
mongod
en segundo plano ahora y cada vez que reinicie su computadora.fuente
mkdir -p ~/Library/LaunchAgents
cp /usr/local/Cellar/mongodb/3.2.10/homebrew.mxcl.mongodb.plist ~/Library/LaunchAgents
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist
intente ejecutar el siguiente comando:
fuente
Clásicamente, para ejecutar en segundo plano, simplemente comience con
nohup some_command -to launch &
Entonces eso es nohup &, coloque el comando que desea ejecutar en segundo plano entre nohup y &. Se ejecutará como usted, seguirá ejecutándose después de cerrar la terminal o cerrar sesión. Puede iniciarlo como otro usuario a través de sudo. Para que se ejecute al inicio, agréguelo al reemplazo de scripts de inicio (no sé cómo lo llaman). Escribirá cualquier salida en un archivo donde lo inició llamado nohup.out
fuente
La mejor manera de hacer que un programa se ejecute al inicio en OS X es crear un LaunchDaemon (vea los documentos de Apple y eche un vistazo a algunos de los demonios suministrados por Apple en / System / Library / LaunchDaemons) e instálelo en / Library / LaunchDaemons. Lingon puede ayudarlo a crear el archivo .plist.
fuente