Mongod'u unix (mac osx) üzerinde arka planda nasıl çalıştırabilirim?


50

Arka planda her zaman mevcut bir şey olarak mongod çalıştırmak istiyorum. Bunu yapmanın en iyi yolu ne olurdu? MySQL'i başlangıçta çalıştırabilmeme benziyor ve arka planda sürekli çalışıyor. Belki sadece bazı bash scriptleri, ama daha iyi bir yol olup olmadığını duymak güzel olurdu. Sadece bash ise - bu nasıl olurdu? Teşekkürler.


1
npm install pm2 -g+ pm2 start mongod+ pm2 save, oturumlar arasında herhangi bir arka plan işlemini devam ettirmek için güzel bir çapraz platform yoludur.
Jthorpe

Yanıtlar:


81

MongoDB arka plan programı (mongod) sunucuyu arka planda çalıştırmak için bir komut satırı seçeneğine sahiptir ...

--fork

Bu komut satırı seçeneği, mesajları günlüğe kaydetmek için (geçerli konsolu kullanamadığı için) bir dosya belirtmenizi gerektirir. Bu komutun bir örneği şöyle görünür:

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

Bunu bir /etc/init.d/mongod bash betiğine koyabilirsiniz. Daha sonra hizmetin başlangıçta çalışmasını sağlamak için /etc/rc#.d/ içinde standart sembolik bağlar (S ## & K ##) oluşturun. İşte bu süreci daha detaylı açıklayan bir öğretici . "Init Script Aktivasyonu" başlıklı bölüme gidin. Bu aynı zamanda ...

service mongod status
service mongod start
service mongod stop

Bunu Windows'ta yapamıyorum.
Malik Brahimi


./bin/mongod --fork --logpath = log / mongod.log --dbpath = data / db benim için çalıştı
Selvakumar Esra

Ekstra bir günlük dosyası oluşturmak istemiyorsanız, --syslogher şeyin sadece sistem günlüğüne yazıldığı bir seçenek de vardır .
Markus Graf

@Jesse Webb. Oturumu kapattıktan sonra ssh bağlantısı gibi çalışmaya devam eder mi?
Miguel

11

Mac'te olduğunuzdan, MongoDB'yi kurmak için Homebrew kullanmalısınız (henüz yapmadıysanız Homebrew'i kurmanız gerekir):

brew install mongodb

Diyelim ki yüklü olan sürüm isimlendirildi 2.0.6-x86_64. Ardından, sizin için oluşturduğu LaunchAgent plist dosyasını ekleyin:

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

Bu, mongodşimdi ve bilgisayarınızı her yeniden başlattığınızda arka planda başlayacaktır.


1
güncellenme tarihi: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

4

aşağıdaki komutu çalıştırmayı deneyin:

mongod --fork --syslog

0

Klasik olarak, arka planda çalıştırmak için
nohup ile başlamalısınız some_command - başlatmak için &
Yani bu nohup &, nohup ile & arasında arka planda çalıştırmak istediğiniz komutu koyun. Sizin gibi çalışacak, terminali kapattıktan veya çıkış yaptıktan sonra çalışmaya devam edecektir. Sudo ile başka bir kullanıcı olarak başlatabilirsiniz. Başlangıçta çalıştırılmasını sağlamak için, init komut dosyalarının yerine ekleyin (ne dediklerini bilmiyor). Herhangi bir çıktıyı nohup.out adlı başlattığınız bir dosyaya yazacaktır.


0

OS X'te başlangıçta çalışacak bir program çalıştırmanın en iyi yolu bir LaunchDaemon oluşturmaktır ( Apple'ın belgelerine bakın ve Apple tarafından sağlanan bazı daemonslara / System / Library / LaunchDaemons'a bakın) ve / Library içine yükleyin. / LaunchDaemons. Lingon , .plist dosyasını oluşturmanıza yardımcı olabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.