![16.04에서 시스템 시작 시 'mongod'가 시작되도록 하는 올바른 방법은 무엇입니까?](https://rvso.com/image/1087117/16.04%EC%97%90%EC%84%9C%20%EC%8B%9C%EC%8A%A4%ED%85%9C%20%EC%8B%9C%EC%9E%91%20%EC%8B%9C%20'mongod'%EA%B0%80%20%EC%8B%9C%EC%9E%91%EB%90%98%EB%8F%84%EB%A1%9D%20%ED%95%98%EB%8A%94%20%EC%98%AC%EB%B0%94%EB%A5%B8%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
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]
mongod
16.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
보다:
이제 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