Vraag Hoe kan ik mongod op de achtergrond uitvoeren op unix (mac osx)?


Ik wil mongod op de achtergrond laten lopen als een altijd aanwezig ding. Wat zou de beste manier zijn om dit te doen? Een beetje zoals de manier waarop ik MySQL kan uitvoeren bij het opstarten en het is er gewoon altijd op de achtergrond. Misschien zijn het gewoon bash-scripts, maar het zou leuk zijn om te horen of er een betere manier is. Als het gewoon bash is - hoe zou dat eruit zien? Bedankt.


43
2017-07-06 02:54


oorsprong


npm install pm2 -g + pm2 start mongod + pm2 save is een mooie platformoverschrijdende manier om elk achtergrondproces door alle sessies heen te laten lopen. - Jthorpe


antwoorden:


De MongoDB-daemon (mongod) heeft een opdrachtregeloptie om de server op de achtergrond uit te voeren ...

--fork

Voor deze opdrachtregeloptie moet u ook een bestand opgeven om berichten aan te melden (omdat het de huidige console niet kan gebruiken). Een voorbeeld van deze opdracht ziet er als volgt uit:

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

Je zou dit in een /etc/init.d/mongod bash scriptbestand kunnen stoppen. En als u de service wilt laten uitvoeren bij het opstarten, maakt u de standaard symbolische koppelingen (S ## & K ##) in /etc/rc#.d/. Hier is een zelfstudie dat verklaart dit proces in meer detail. Blader naar de sectie getiteld "Init Script Activation". Dit heeft ook het extra voordeel dat je commando's kunt uitvoeren zoals ...

service mongod status
service mongod start
service mongod stop

72
2017-09-14 23:02



Ik kan dit niet doen in Windows. - Malik Brahimi
@MalikBrahimi Zie stackoverflow.com/q/15185012/544342 - WAF
./bin/mongod --fork --logpath = logs / mongod.log --dbpath = data / db werkte voor mij - Selvakumar Esra
Als u geen extra logbestand wilt maken, is er ook een optie --syslog waarin alles net in het systeemlogboek is geschreven. - Markus Graf
@Jesse Webb. En zal het blijven draaien nadat ik me afmeld, bijvoorbeeld de ssh-verbinding? - Miguel


Omdat je op een Mac werkt, moet je dit gebruiken homebrew om MongoDB te installeren (je moet Homebrew installeren als je dat nog niet hebt gedaan):

brew install mongodb

Laten we zeggen dat de versie die is geïnstalleerd, een naam heeft 2.0.6-x86_64. Voeg vervolgens het LaunchAgent plist-bestand toe dat het voor u genereert:

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

Dit wordt gestart mongod op de achtergrond nu en telkens wanneer u uw computer opnieuw opstart.


10
2018-06-13 16:46



bijgewerkt: 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 - helsont


probeer het volgende commando uit te voeren:

mongod --fork --syslog

3
2017-07-26 01:37





Klassiek, om op de achtergrond te starten, begin gewoon met
nohup some_command - om te starten en
Dus dat is nohup &, zet het commando dat je op de achtergrond wilt uitvoeren tussen nohup en &. Het zal als u werken, het zal blijven draaien nadat u de terminal sluit of uitlogt. Je zou het kunnen starten als een andere gebruiker via sudo. Om het bij start te laten werken, voeg je het toe aan de init scripts vervanging (weet niet hoe ze het noemen). Het zal elke output schrijven naar een bestand waar je het begon met de naam nohup.out


0
2017-07-06 04:45





De beste manier om een ​​programma bij het opstarten van OS X te laten uitvoeren, is door een LaunchDaemon te maken (zie Documenten van Apple, en bekijk enkele door Apple geleverde daemons in / System / Library / LaunchDaemons) en installeer deze in / Library / LaunchDaemons. Lingon kan u helpen bij het maken van het .plist-bestand.


0
2017-07-06 05:37