2014-11-05 3 views
9

제공된 init.d 스크립트가 CentOS에서 작동하지 않는 이유를 알아 내려고하고 있습니다. 나는 수동으로 시작 시도 :Mongo mongod init.d 스크립트가 CentOS에서 작동하지 않습니다.

/etc/init.d/mongod start 

그러나 나는 다음과 같은 오류 얻을 :

daemon --user "$MONGO_USER" "$NUMACTL $mongod $OPTIONS >/dev/null 2>&1" 

그래서 나는 보았다 곳 mongod : 그것은 시작하려고 경우

Starting mongod: /usr/bin/dirname: extra operand `2>&1.pid' 
Try `/usr/bin/dirname --help' for more information. 

내가 스크립트에 모습을 var는 다음과 같이 정의됩니다.

mongod=${MONGOD-/usr/bin/mongod} 

시험 결과 :

service mongod start 

같은 오류가 발생했습니다.

내가 잘못 설정했는지 모르지만 최신 스크립트가 있는지 확인했지만 mongod 프로세스를 시작할 수 없습니다.

어떤 아이디어 ???

+1

Red Hat Linux 및 MongoDB 2.6.5에서 비슷한 동작이 나타나지만이 오류와 상관없이 MongoDB _does_가 시작됩니다. – Tommi

+0

@ 토미 : CentOS7의 경우 https://jira.mongodb.org/browse/SERVER-14679?filter=-2 –

+0

에서 보길 원할 것입니다. @lostintranslation : 어떤 버전의 centos를 사용하고 있습니까? –

답변

0

확인 설정 파일 /etc/mongod.conf에서 몽고의 PID 파일 위치 :/'pidfilepath =은/var/실행/MongoDB를 기본적으로

awk -F'[:=]' -v IGNORECASE=1 '/^[[:blank:]]*pidfilepath[[:blank:]]*[:=][[:blank:]]*/{print $2}' /etc/mongod.conf 

이 mongod.conf 라인이 있어야한다 mongod.pid '. 존재하지 않으면 추가하십시오.

/etc/mongod.conf의 YAML 버전을 사용하는 경우 https://jira.mongodb.org/browse/SERVER-13595을 확인하십시오. 즉, 당신은 /etc/rc.d/init.d/mongod이 줄을 변경해야합니다

PIDFILE=`awk -F= '/^pidfilepath[[:blank:]]*=[[:blank:]]*/{print $2}' "$CONFIGFILE"` 

에 :

PIDFILE=`awk -F: '/^[[:blank:]]*pidFilePath[[:blank:]]*:[[:blank:]]*/{print $2}' "$CONFIGFILE" | tr -d ' '` 
+0

쿨, 고맙습니다. 빠른 참고 mongod를 수동으로 config 파일로 시작할 수 있습니다. mongod -f /etc/mongod.conf. conf 파일 문제처럼 보이지 않으므로 init.d 스크립트 문제가 더 많습니다. 또한 시작 mongod :/usr/bin/dirname 오류는 골칫거리이며,/usr/bin/mongod를 시작하려고 시도해야합니다./usr/bin/dirname은 스크립트 변수가 엉망이 된 것 같습니다. – lostintranslation

0

나 문제에 대한 pidfilepath했다. 초기화 스크립트는 /var/run/mongodb/mongod.pid '스크립트가 포함되어 초기화의 내부에이

pidfilepath 같은 형식으로 경로 = /var/run/mongodb/mongod.pid

PIDFILE 변수를 처리 할 수 '이 아니라'/var/run/mongodb/mongod.pid '

FIX : 이걸로 PIDFILE 줄을 바꾸면 작동 할 것입니다.

PIDFILE = awk -F= '/^pidfilepath[[:blank:]]*=[[:blank:]]*/{gsub(" ", "", $2);print $2}' "$CONFIGFILE"

+0

다른 솔루션이 https://github.com/mongodb/mongo/commit/50ca596ace0b1390482408f1b19ffb1f9170cab6 –

1

다음 링크는 한마디로 문제를 잘 https://ma.ttias.be/mongodb-startup-dirname-extra-operand-pid/

를 해결하기 위해 표시하는 나쁜 스크립트가 배포 된 것처럼 보이지만 출력물이 해롭지는 않습니다. mongod는 여전히 실행됩니다. yum update를 실행하면 고정 된 스크립트를 얻을 수 있지만 스크립트가 실패하지 않았기 때문에 아마도 mongod가 실패 할 것입니다. 몽고 로그 (일반적으로 /var/log/mongodb/mongod.log)를 확인하십시오. 그러나 /etc/mongod.conf에서 다르게 지정되면 다를 수 있습니다.로그 파일은 실패한 실제 이유를 알려줍니다.

+0

일 수 있습니다. mongod 프로세스가 시작되지 않았습니다. 그걸 수정하면 볼 수 있도록 업그레이드 할거야. – lostintranslation

0

나는 또한 동일한 문제에 직면 해있다.

line 63 것 같아요 : 아래에 언급 한 바와 같이

수정 스크립트 파일 (/etc/init.d/mongod)의 작은 변화를 만드는 것입니다

daemon --user "$MONGO_USER" "$NUMACTL $mongod $OPTIONS >/dev/null 2>&1" 

희망이 도움이

daemon --user "$MONGO_USER" --pidfile "$PIDFILE" "$NUMACTL $mongod $OPTIONS >/dev/null 2>&1" 

에! !! !!

관련 문제