Jak uruchomić serwer MongoDB przy starcie systemu?


85

Muszę uruchomić mój serwer MongoDB przy każdym ponownym uruchomieniu systemu. Jak skonfigurować go, aby uruchamiał się w moim systemie operacyjnym? Jestem na Ubuntu 11.04.


1
Zastanawiam się, dlaczego nikt nie zaleca tutaj używania upstart.
Tom

Odpowiedzi:


132

Miałem ten sam „problem” na Debianie jessie, a moje proste rozwiązanie to:

systemctl enable mongod.service

Myślę, że w Ubuntu jest tak samo.

-- EDYTOWAĆ --

Zgodnie z komentarzami działa również na Ubuntu. W Ubuntu 18.04 LTS wydaje się, że jest to następujące rozwiązanie:

systemctl enable mongodb.service

Dzięki @Adam. Może zmienili nazwę usługi


10
Pracowałem dla mnie nadUbuntu Mate 16.04.2 LTS
Muhammad Gelbana

2
Szkoda, że ​​w oficjalnej dokumentacji nie ma informacji o uruchomieniu usługi.
UpTheCreek

2
może być konieczne (sudo) systemctl start mongoduruchomienie usługi mongd
Jeff Xiao

2
Działa również na Ubuntu 18.04 LTS
89n3ur0n

1
Działa tylko dla mnie, jeśli zmienię mongod.servicesię mongodb.servicena Ubuntu 18.04 LTS - dziwne?
Adam

37

Jeśli zainstalujesz MongoDB za pomocą Advanced Packaging Tool (apt), skonfiguruje on twoje skrypty startowe, aby automatycznie uruchamiały Mongo po uruchomieniu systemu.

Kroki są następujące: najpierw skonfiguruj apt, aby móc pobrać pakiet Mongo:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
sudo nano /etc/apt/sources.list

Dodaj tę linię do sources.list, a następnie zapisz:

deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen

Następnie pobierz i zainstaluj Mongo za pomocą narzędzia apt-get :

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install mongodb-10gen

Jeśli chcesz wprowadzić zmiany w konfiguracji, edytuj plik mongodb.conf i uruchom ponownie: 

sudo nano /etc/mongodb.conf
sudo service mongod restart

5
Jeśli chcesz później to zmienić, aby nie uruchamiał MongoDB przy starcie, edytuj /etc/init/mongodb.conf.
kynan

11

Kontrolowanie wszystkich łączy usługi init.d powinno odbywać się za pomocą narzędzia update-rc.d

tzn. aby włączyć demona mongod w domyślnych poziomach pracy (tj. włączyć go podczas rozruchu):

update-rc.d mongodb defaults

Zobacz https://help.ubuntu.com/community/UbuntuBootupHowto aby uzyskać więcej informacji. Ten link mówi ci wszystko, co chcesz wiedzieć o tym, jak ustawić programy podczas rozruchu.


2
Dystrybucja 10gen MongoDB nie korzysta ze skryptów inicjujących w stylu System-V, musisz je edytować /etc/init/mongodb.conf.
kynan

czy muszę to zrobić?
tofutim

5

Jeśli zainstalowałeś MongoDB Community Edition (co jest zalecanym sposobem, ponieważ otrzymuje częstsze aktualizacje niż pakiet dystrybuowany w repozytorium pakietów Ubuntu), konfigurujesz zachowanie start / stopmongod za pomocą skryptu inicjującego upstart /etc/init/mongod.conf , który domyślnie uruchamia demona automatycznie przy starcie

start on runlevel [2345]
stop on runlevel [06]

Jeśli nie chcesz, aby uruchamiał się automatycznie, zamień te 2 linie na

stop on runlevel [023456]

Czy to uruchomi serwer, zanim ktokolwiek zaloguje się do systemu?
Gabriel Fair

@GrrielFair Tak
kynan

5

Używam crontab dla Ubuntu. To działa dobrze. Aby móc edytować plik

Sudo crontab –e 

Dodaj ten wiersz do pliku

@reboot sudo service mongod start &

Westchnienie „&” na końcu pomaga w pracy w tle.

Ctrl+ xaby wyjść, naciśnij „Y” po wyświetleniu monitu. I zachowaj nazwę pliku jako „crontab”.


3

Jeśli masz Ubuntu 16.04 LTS, możesz włączyć mongo, aby rozpocząć po uruchomieniu, wpisując to w konsoli:
sudo systemctl enable mongod
Użyłem tego podejścia z MongoDB Community Edition 3.6 i działa. Uruchom ponownie komputer i sprawdź, czy mongo działa:
sudo service mongod status


3

Możesz użyć polecenia systemctl, aby włączyć usługę mongo podczas uruchamiania systemu.

Utwórz usługę taką, że

sudo nano /etc/systemd/system/mongodb.service

Umieść treść w pliku

[Unit]
Description=MongoDB Database Service
Wants=network.target
After=network.target

[Service]
ExecStart=/usr/bin/mongod --config /etc/mongod.conf
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
User=mongodb
Group=mongodb
StandardOutput=syslog
StandardError=syslog

po tym będziesz mógł używać poleceń serwisowych takich jak

sudo service mongod start|stop|restart

a jeśli chcesz to naprawić przy starcie komputera, możesz utworzyć plik mongod w /etc/init.d/


1

chkconfig --levels 235 mongod on?

gdzie mongodb to nazwa twojej usługi


2
Dystrybucja 10gen MongoDB domyślnie nie używa skryptów inicjujących w stylu System-V (chociaż jeden jest dostarczony), /etc/init/mongodb.confzamiast tego edytuj .
kynan

@kynan Edytuj jak? Co mogę zmienić / dodać do pliku mongod.conf?
Kieveli 28.04.16

@Kieveli: zobacz tę odpowiedź
kynan

1

Konsekwentnie wykorzystywałem ten post jako punkt wyjścia do uruchomienia nowego urządzenia do dzielenia fragmentów. Zawiera sekcję dotyczącą konfigurowania programu upstart, z której również korzystałem.

http://joslynesser.com/blog/archives/2010/09/28/mongodb-sharding-guide-server-setup-on-ubuntu-ec2/


1
Nie publikuj „tylko zewnętrznych linków”. Możliwe, że zewnętrzny link może w przyszłości przestać działać, a odpowiedź byłaby wówczas niepełna. Oprócz linku proszę zamieścić odpowiednią część artykułu tutaj: np. opublikować część, która pokazuje „Jak uruchomić serwer MongoDB przy starcie systemu?” używając upstart.
sfałszowany

1

Jeśli zainstalujesz MongoDB w apt-getsposób opisany w przewodniku instalacji Ubuntu MongoDB , zostanie dostarczony z podstawowym skryptem startowym i plikiem konfiguracyjnym. (wysoce zalecane jest użycie pliku konfiguracyjnego)

Można również spojrzeć tutaj dla starego postu, który łączy do init.dskryptu.

W obu przypadkach podstawową przesłanką jest konfiguracja usługi, a następnie konfiguracja do uruchamiania i zatrzymywania z komputerem. Jest to dość powszechna technika dla serwerów, istnieje wiele samouczków na ten temat.


2
nie ma już przypadku w 16.04
chovy
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.