Como posso executar o mongod em segundo plano no unix (mac osx)?

43

Eu gostaria de passar o mongod ao fundo como um tipo de coisa sempre presente. Qual seria a melhor forma de fazer isso? Como se eu pudesse rodar o MySQL na inicialização e ele está sempre lá rodando em segundo plano. Talvez seja apenas alguns scripts bash, mas seria bom saber se existe uma maneira melhor. Se é apenas bash - como seria isso? Obrigado.

    
por Ryan Montgomery 06.07.2010 / 04:54

5 respostas

72

O daemon MongoDB (mongod) tem uma opção de linha de comando para executar o servidor em segundo plano ...

--fork

Esta opção de linha de comando requer que você também especifique um arquivo para o qual as mensagens devem ser registradas (desde que não seja possível usar o console atual). Um exemplo desse comando se parece com:

mongod --fork --logpath /var/log/mongod.log

Você pode colocar isso em um arquivo de script /etc/init.d/mongod bash. E para que o serviço seja executado na inicialização, crie os links simbólicos padrão (S ## & K ##) dentro de /etc/rc#.d/. Aqui está um tutorial que explica esse processo com mais detalhes. Role para baixo até a seção intitulada "Ativação de script de inicialização". Isso também tem a vantagem de poder executar comandos como ...

service mongod status
service mongod start
service mongod stop
    
por 15.09.2010 / 01:02
10

Já que você está em um Mac, você deve usar o Homebrew para instalar o MongoDB (você precisará instalar o Homebrew se ainda não):

brew install mongodb

Digamos que a versão que foi instalada se chame 2.0.6-x86_64 . Em seguida, adicione o arquivo plist do LaunchAgent que ele gera para você:

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

Isso iniciará mongod em segundo plano agora e toda vez que você reiniciar o computador.

    
por 13.06.2012 / 18:46
3

tente executar o seguinte comando:

mongod --fork --syslog
    
por 26.07.2017 / 03:37
0

Classicamente, para ser executado em segundo plano, comece com
nohup some_command -para iniciar &
Então isso é nohup & amp ;, coloque o comando que você quer rodar em segundo plano entre nohup e & Ele será executado como você, ele continuará funcionando depois de fechar o terminal ou efetuar logout. Você poderia iniciá-lo como outro usuário via sudo. Para fazê-lo funcionar no início, adicione-o à substituição dos scripts de inicialização (não sei como eles o chamam). Ele irá gravar qualquer saída em um arquivo no qual você iniciou a chamada nohup.out

    
por 06.07.2010 / 06:45
0

A melhor maneira de executar um programa na inicialização do OS X é criar um LaunchDaemon (consulte Documentos da Apple , e dê uma olhada em alguns dos daemons fornecidos pela Apple em / System / Library / LaunchDaemons) e instale-os em / Library / LaunchDaemons. O Lingon pode ajudá-lo a criar o arquivo .plist.

    
por 06.07.2010 / 07:37