Linuxサービスとしてmongodを追加するために link をたどっていました。サーバーの再起動後、mongodサーバーは再起動されません。
/etc/rc.d/init.d/mongodファイルの内容:
#!/bin/bash
#
# mongodb Startup script for the mongodb server
#
# chkconfig: - 64 36
# description: MongoDB Database Server
#
# processname: mongodb
#
# Source function library
. /etc/rc.d/init.d/functions
if [ -f /etc/sysconfig/mongodb ]; then
. /etc/sysconfig/mongodb
fi
prog="mongod"
mongod="/usr/bin/mongod"
mongodb_user="myUserAdmin"
RETVAL=0
start() {
echo -n $"Starting $prog: "
#daemon $mongod "--fork --logpath /var/log/mongodb.log --logappend 2>&1 >>/var/log/mongodb.log"
daemon --user=$mongodb_user $mongod "--config /etc/mongodb.conf"
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
return $RETVAL
}
reload() {
echo -n $"Reloading $prog: "
killproc $prog -HUP
RETVAL=$?
echo
return $RETVAL
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
condrestart)
if [ -f /var/lock/subsys/$prog ]; then
stop
start
fi
;;
reload)
reload
;;
status)
status $mongod
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|reload|status}"
RETVAL=1
esac
exit $RETVAL
/ var/log/messagesを参照する
表示されるエラーは
> Mar 4 09:04:44 redhat7 systemd: Starting SYSV: MongoDB Database Server...
Mar 4 09:04:44 redhat7 systemd: Failed at step EXEC spawning /etc/rc.d/init.d/mongod: Exec format error
Mar 4 09:04:44 redhat7 systemd: mongod.service: control process exited, code=exited status=203
Mar 4 09:04:44 redhat7 systemd: Failed to start SYSV: MongoDB Database Server.
Mar 4 09:04:44 redhat7 systemd: Unit mongod.service entered failed state.
Mar 4 09:04:44 redhat7 systemd: mongod.service failed.
私を助けてください。
おそらくあなたが望む答えではないかもしれませんが、あなたは少し異なるアプローチを検討するかもしれません。
あなたの指示は2013年からのものであり、事前にシステム化されたRedHatに関連しています。 (AFAIK)がsystemdしたRedHat 7を使用しているので、initスクリプトを使用するのではなく、RedHat7を使用することをお勧めします。
Mongoをインストールしたときに適切なスクリプトが配置されていないことに驚いていますが、RPMベースのシステムにmongo独自のサービスユニットを使用することを検討するのは理にかなっていると思います( https:// githubから取得)。 com/mongodb/mongo/blob/master/rpm/mongod.service ):
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
Documentation=https://docs.mongodb.org/manual
[Service]
User=mongod
Group=mongod
Environment="OPTIONS=--quiet -f /etc/mongod.conf"
ExecStart=/usr/bin/mongod $OPTIONS run
ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb
ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb
ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb
PermissionsStartOnly=true
PIDFile=/var/run/mongodb/mongod.pid
# file size
LimitFSIZE=infinity
# cpu time
LimitCPU=infinity
# virtual memory size
LimitAS=infinity
# open files
LimitNOFILE=64000
# processes/threads
LimitNPROC=64000
# total threads (user+kernel)
TasksMax=infinity
TasksAccounting=false
# Recommended limits for for mongod as specified in
# http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings
[Install]
WantedBy=multi-user.target
これを/etc/systemd/system/mongod.serviceに入れて、initスクリプトを無効にすることをお勧めします。