programing

Mongod 서비스 시작이 코드 100으로 종료됩니다.

showcode 2023. 5. 20. 11:02
반응형

Mongod 서비스 시작이 코드 100으로 종료됩니다.

문제

mongo 서비스가 더 이상 시작되지 않습니다.

root@machine ~ # service mongod start
root@machine ~ # service mongod status
● mongod.service - High-performance, schema-free document-oriented database
   Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Tue 2017-08-15 12:03:51 CEST; 2s ago
     Docs: https://docs.mongodb.org/manual
  Process: 26942 ExecStart=/usr/bin/mongod --config /etc/mongod.conf (code=exited, status=100)
 Main PID: 26942 (code=exited, status=100)

Aug 15 12:03:50 machine systemd[1]: Started High-performance, schema-free document-oriented database.
Aug 15 12:03:51 machine systemd[1]: mongod.service: Main process exited, code=exited, status=100/n/a
Aug 15 12:03:51 machine systemd[1]: mongod.service: Unit entered failed state.
Aug 15 12:03:51 machine systemd[1]: mongod.service: Failed with result 'exit-code'.

여기서 종료 코드 100은 다음과 같이 흐리게 정의됩니다.

프로세스가 탐지되지 않은 예외를 발생시킬 때 mongod에 의해 반환됩니다.

내가 한 일

먼저 공식 가이드를 통해 Ubuntu 16.04.2 LTS에 mongodb(3.4.7)를 설치했습니다.

서비스를 시작하고 중지하는 것이 잘 작동했습니다.그래서 저는 계속해서 인증을 활성화했습니다(공식 가이드를 통해 다시 한번).

그런 다음 서버 시작 시 실행할 수 있도록 서비스를 추가했습니다.

root@machine ~ # systemctl enable mongod.service

mongod.conf

나는 또한 yaml linter를 통과하는 내 구성 파일을 편집했습니다.

# Where and how to store data.
storage:
  dbPath: /var/lib/mongodb
  journal:
    enabled: true

#  engine: mmapv1
#  mmapv1:
#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1


#processManagement:

security:
  authorization: enabled

파일의 소유권은 다음과 같습니다.

root@machine ~ # ls -la /etc/ | grep mongo
-rw-r--r--   1 root  root     599 Aug 15 11:42 mongod.conf

DbPath

dbpath에 문제가 있다는 것을 알고 있습니다./var/lib/mongodb소유권 측면에서 다음과 같은 이점이 있습니다.

root@ machine ~ # ls -la /var/lib/ | grep mongo
drwxr-xr-x  4 mongodb      mongodb      4096 Aug 15 11:54 mongodb

서비스 목록

다음을 통해 모든 서비스를 나열할 때service --status-all몽고 관련 서비스에 대한 항목이 없습니다.

누군가가 무엇이 문제를 일으킬 수 있는지 알고 있습니까?


갱신하다

제안된 대로 다음 명령을 실행했습니다(약간 수정).

root@machine ~ /usr/bin/mongod --verbose --config /etc/mongod.conf &
[1] 28495

제가 제대로 이해했을 때, 이것은 이진법의 직접 실행입니다.이를 통해 최소한 mongo 셸에 로그인할 수 있습니다.

root@machine ~ # mongo
MongoDB shell version v3.4.7
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.7
> 

그러나 종료 코드 100으로 서비스 상태가 여전히 실패한 상태로 남아 있습니다.


업데이트 업데이트

입력 시root@machine ~ # /usr/bin/mongod --verbose

다음 오류가 발생합니다.

2017-08-15T13:45:40.973+0200 I CONTROL  [initandlisten] MongoDB starting : pid=28642 port=27017 dbpath=/data/db 64-bit host=machine
2017-08-15T13:45:40.973+0200 I CONTROL  [initandlisten] db version v3.4.7
2017-08-15T13:45:40.973+0200 I CONTROL  [initandlisten] git version: cf38c1b8a0a8dca4a11737581beafef4fe120bcd
2017-08-15T13:45:40.973+0200 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2g  1 Mar 2016
2017-08-15T13:45:40.973+0200 I CONTROL  [initandlisten] allocator: tcmalloc
2017-08-15T13:45:40.973+0200 I CONTROL  [initandlisten] modules: none
2017-08-15T13:45:40.973+0200 I CONTROL  [initandlisten] build environment:
2017-08-15T13:45:40.973+0200 I CONTROL  [initandlisten]     distmod: ubuntu1604
2017-08-15T13:45:40.973+0200 I CONTROL  [initandlisten]     distarch: x86_64
2017-08-15T13:45:40.973+0200 I CONTROL  [initandlisten]     target_arch: x86_64
2017-08-15T13:45:40.973+0200 I CONTROL  [initandlisten] options: { systemLog: { verbosity: 1 } }
2017-08-15T13:45:40.973+0200 D -        [initandlisten] User Assertion: 29:Data directory /data/db not found. src/mongo/db/service_context_d.cpp 98
2017-08-15T13:45:40.973+0200 I STORAGE  [initandlisten] exception in initAndListen: 29 Data directory /data/db not found., terminating
2017-08-15T13:45:40.973+0200 I NETWORK  [initandlisten] shutdown: going to close listening sockets...
2017-08-15T13:45:40.973+0200 I NETWORK  [initandlisten] shutdown: going to flush diaglog...
2017-08-15T13:45:40.973+0200 I CONTROL  [initandlisten] now exiting
2017-08-15T13:45:40.973+0200 I CONTROL  [initandlisten] shutting down with code:100

데이터 디렉토리의 사용 권한에 여전히 문제가 있을 수 있습니다.특히 터미널에서 mongod를 실행한 적이 있다면 더욱 그렇습니다.

단말기에서 실행하면 mongodb 사용자가 아닌 root 아래에 데이터 파일이 생성됩니다.수정할 내용

sudo chown -R mongodb:mongodb /var/lib/mongodb/*
rm /var/lib/mongodb/mongod.lock
systemctl restart mongod
systemctl status mongod

이거 먹어봐요.

제거합니다.mongod.lock에 철하다.'dbath'문제 없이 시작해야 합니다.

꽤 늦은 건 알지만, 이것이 도움이 필요한 누군가를 도울지도 모릅니다.

/var/log/mongodb를 확인해보니 다음과 같습니다.

Failed to unlink socket file /tmp/mongodb-27017.sock Operation not permitted

mongod를 시작하기 위해 sudo를 사용했기 때문에 mongodb가 아닌 root로 권한이 설정되어 있는 것 같습니다.(아마도 누군가가 이것을 명확히 하는 것을 도와줄 수 있을 것입니다)

그래서 해결책은 그것을 삭제하는 것입니다./tmp/mongodb-27017.sock서비스를 다시 시작합니다.적어도 그것은 저에게 효과가 있었습니다. (제가 영어를 잘 못해서 죄송합니다.)

https://mkyong.com/mongodb/mongodb-failed-to-unlink-socket-file-tmpmongodb-27017/

dbath의 로그 파일을 확인합니다.이것은 정상적으로 /var/log/mongodb에 위치합니다. 로그 파일은 mongodb.log입니다.

저에게 문제는 디스크 공간이 부족하다는 것이었습니다.저는 당신이 가지고 있는 것과 같은 오류 메시지를 받았습니다.

빈 /했습니다. 이만 하면 됩니다. /etc/mongodb.conf 파일에 줄을 추가하십시오.smallfiles = true

윈도우 데스크톱에서 mongoDB를 사용하기 때문에

관리자로 시작합니다.

또는

cmd에서 관리자로 이동합니다.

그럼 이미 시작되었는지 확인))))

그것은 중요합니다.

왜냐하면 만약 당신이 그것을 두 번 시작하려고 시도한다면 그것은 또한 당신에게 줄 것입니다.

코드 100을 종료합니다.

시동 걸쇠를 확인해야 할 것 같아요.

나의 시작:

"C:\Program Files\MongoDB\Server\5.0\bin\mongod.exe" --dbpath "C:\Program Files\MongoDB\Server\5.0\data" --auth 

창에 있는 경우 몇 가지 간단한 단계만 수행하면 바로 이동할 수 있습니다.

  1. C 드라이브로 이동
  2. 데이터라는 이름의 폴더 생성
  3. 생성된 데이터 폴더 내부로 이동하여 다른 폴더 db 생성
  4. 창을 닫고 새로 고칩니다.
  5. 당신의 문제는 해결되었습니다.

언급URL : https://stackoverflow.com/questions/45691032/mongod-service-start-exits-with-code-100

반응형