Eu gostaria de executar o mongod em segundo plano como um tipo de coisa sempre presente. Qual seria a melhor forma de fazer isso? É como a maneira como eu posso rodar o MySQL na inicialização e sempre está lá em execução em segundo plano. Talvez sejam apenas alguns scripts bash, mas seria bom saber se existe uma maneira melhor. Se for apenas bash - como seria isso? Obrigado.
mac-osx
unix
background-process
mongodb
Ryan Montgomery
fonte
fonte
npm install pm2 -g
+pm2 start mongod
+pm2 save
é uma boa maneira de plataforma cruzada para manter qualquer processo em segundo plano em execução nas sessões.Respostas:
O daemon MongoDB (mongod) possui uma opção de linha de comando para executar o servidor em segundo plano ...
Esta opção da linha de comandos exige que você também especifique um arquivo para o qual registrar mensagens (já que não pode usar o console atual). Um exemplo deste comando é semelhante a:
Você pode colocar isso em um arquivo de script /etc/init.d/mongod bash. E, para executar o serviço 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 "Init Script Activation". Isso também tem o benefício adicional de poder executar comandos como ...
fonte
--syslog
na qual tudo é gravado no log do sistema.Como você está em um Mac, use o Homebrew para instalar o MongoDB (você precisará instalar o Homebrew, se ainda não o tiver):
Digamos que a versão instalada foi nomeada
2.0.6-x86_64
. Em seguida, adicione o arquivo plist do LaunchAgent que ele gera para você:Isso será iniciado
mongod
em segundo plano agora e toda vez que você reiniciar o computador.fonte
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
tente executar o seguinte comando:
fonte
Classicamente, para executar em segundo plano, basta começar com
nohup some_comand -para iniciar &
Então isso é nohup &, coloque o comando que você deseja executar em segundo plano entre nohup e &. Ele funcionará como você, continuará funcionando depois que você fechar o terminal ou sair. Você pode iniciá-lo como outro usuário via sudo. Para executá-lo no início, adicione-o à substituição dos scripts init (não sei como eles o chamam). Ele gravará qualquer saída em um arquivo no qual você o iniciou, chamado nohup.out
fonte
A melhor maneira de executar um programa na inicialização no OS X é criar um LaunchDaemon (consulte os documentos da Apple e dê uma olhada em alguns dos daemons fornecidos pela Apple em / System / Library / LaunchDaemons) e instalá-lo em / Library / LaunchDaemons. O Lingon pode ajudá-lo a criar o arquivo .plist.
fonte