16.04에서 시스템 시작 시 'mongod'가 시작되도록 하는 올바른 방법은 무엇입니까?

16.04에서 시스템 시작 시 'mongod'가 시작되도록 하는 올바른 방법은 무엇입니까?

Ubuntu 16.04의 소프트웨어 센터를 통해 MongoDB를 설치했습니다.

mongodb 1:2.6.10-0ubuntu1

나는 믿는다이것현재 MongoDB 2.6.10이 포함되어 있습니다.

apache2 localhost 설정에서 애플리케이션을 실행 중이며 mongod시스템이 다음과 같이 시작될 때마다 수동으로 시작해야 합니다.

mongod

자동으로 시작되게 하고 싶습니다.

나는 이를 수행하기 위해 두 가지 주요 방법을 발견했습니다.

update-rc.d mongodb defaults

에서: https://askubuntu.com/a/89914/367134

결과는 다음과 같습니다.

update-rc.d mongodb defaults
insserv: fopen(.depend.stop): Permission denied

하지만 이로 인해 오류가 발생하지 않았습니다.

sudo update-rc.d mongodb defaults

또한 "MongoDB 구성 파일"을 편집하기 위한 몇 가지 참조를 보았지만 둘 이상의 위치에서 구성 파일을 볼 수 있으므로 이것이 무엇을 의미하는지 잘 모르겠습니다.

  • /etc/mongodb.conf
  • /etc/init/mongodb.conf
  • /etc/init.d/mongodb

그리고 올바른 파일에 들어가면 거기에서 무엇을 변경해야 할지 잘 모르겠습니다.

나는 /etc/init/mongodb.conf다음을 볼 수 있습니다:

start on runlevel [2345]
stop on runlevel [!2345]

mongod16.04에서 시스템 시작 시 시작을 보장하는 올바른 방법은 무엇입니까 ?

나는 읽고 있었다이것를 살펴보고 /etc/rc2.d다음을 확인할 수 있습니다.

S01mongodb@                       --> /etc/init.d/mongodb

업데이트:

제안을 실행한 후:

sudo systemctl enable mongodb

그런 다음 다시 시작하면 다음이 systemctl status mongodb반환됩니다.

* mongodb.service - An object/document-oriented database
   Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Mon 2016-04-18 23:42:28 AEST; 7min ago
     Docs: man:mongod(1)
  Process: 655 ExecStart=/usr/bin/mongod --config /etc/mongodb.conf (code=exited, status=100)
 Main PID: 655 (code=exited, status=100)

Apr 18 23:42:27 me-comp systemd[1]: Started An object/document-oriented database
Apr 18 23:42:28 me-comp systemd[1]: mongodb.service: Main process exited, code=exited, status=100/n/a
Apr 18 23:42:28 me-comp systemd[1]: mongodb.service: Unit entered failed state.
Apr 18 23:42:28 me-comp systemd[1]: mongodb.service: Failed with result 'exit-code'.  

권한 문제 해결

/var/lib/mongodb= drwxr-xr-x mongodb mongodb.
/var/log/mongodb= drwxr-xr-x mongodb mongodb.
/var/log/mongodb/mongodb.log= -rw-r--r-- mongodb nogroup.
/var/log/mongodb/mongod.log= -rw-r--r-- mongodb mongodb.
/data/db/mongod.lock= -rwxrwxr-x me me및 0바이트.
/data= drwxr-xr-x root root.
/data/db= drwxr-xr-x me root.

구성 파일 내용

/etc/mongodb.conf:

# Where to store the data.
dbpath=/var/lib/mongodb

#where to log
logpath=/var/log/mongodb/mongodb.log

logappend=true

bind_ip = 127.0.0.1
#port = 27017 ...

답변1

설치 중

이것이 내가 사용한 방법입니다(사용자 Adam C의 의견에서: 최신 버전의 mongodb 사용). 그것은 나를 위해 일했지만 그 문제에 대한 권위자는 아닙니다.

https://askubuntu.com/a/757385/367134

그런 다음 서비스 파일을 만들어야 했습니다. 다음을 참조하세요.

https://askubuntu.com/a/694226/367134

그리고 다음에서 해당 서비스 파일의 경로를 편집합니다.

/etc/mongodb.conf 

에게:

/etc/mongod.conf

그런 다음 다음을 사용하여 시스템 시작 시 mongodb가 시작되도록 합니다.

sudo systemctl enable mongodb

보다:

https://www.digitalocean.com/community/tutorials/how-to-use-systemctl-to-manage-systemd-services-and-units

이제 mongodb는 16.04 시스템 시작 시 시작됩니다.

이전 MongoDB 제거

전에하지만 그렇게 했기 때문에 기존 설치와 디렉터리를 제거해야 했습니다. 이 작업은 마음에 들었습니다(주로 다음 단계에서 수행).https://askubuntu.com/a/497144/367134):

# go to /etc/apt/sources.list.d and remove any mongodb lists, then:

# sanity check - see what is installed
sudo dpkg -l | grep mongo

# remove all packages 
sudo apt-get remove mongodb* --purge
sudo apt-get autoremove

# remove old directories
sudo rm -r -f /var/lib/mongodb/
sudo rm -r -f /var/log/mongodb/

답변2

개발하는 동안 때때로 그 반대를 원할 수도 있습니다. 즉, 하나의 전역 설치가 아닌 개별적으로 시작하는 여러 개의 로컬 분리 가능한 인스턴스를 갖는 것입니다...

mongod --dbpath ./mongo_db_data/ --logpath ./mongo_logs/mongodb.log --port 12345

답변3

나에게는 그냥 일을 하는 것 뿐이야sudo systemctl enable mongod

답변4

나에게는 DB 경로의 잘못된 권한 때문입니다. 단지

chown mongodb:mongodb /var/lib/mongodb

관련 정보