我在webfaction上阅读了文档 并使用步骤
安装mongodb它说:
To start the database, run $HOME/webapps/application/mongodb-linux-architecture-version/bin/mongod --auth --dbpath $HOME/webapps/application/data/ --port number.
To stop MongoDB while it is running in the foreground, press Ctrl + C.
但我需要保持数据库始终运行 我怎么办? 拜托我。谢谢。
答案 0 :(得分:6)
在$ HOME / webapps /
中创建Makefilestart:
if ! pgrep mongod; then ./<mongodb-dir-linux-version>/bin/mongod --auth --dbpath <dbpath> --port <port> --fork --logpath ./logs/mongodb.log; fi
stop:
pgrep mongod | xargs kill
现在您可以轻松地从mongodb app目录启动/停止mongodb make start / make stop并关闭shh会话。 将它添加到cron以保持mongodb服务保持活动,即使突然发生了某些事情(例如服务器关闭):
> export EDITOR=nano
> crontab -e
添加以下两行并保存。
*/10 * * * * make -C ~/webapps/<mongodb app name>/ -f ~/webapps/<mongodb app name>/Makefile start
@reboot make -C ~/webapps/<mongodb app name>/ -f ~/webapps/<mongodb app name>/Makefile start
答案 1 :(得分:0)
如果您希望mongodb服务器始终启动并运行,则必须将其安装为服务。 MongoDB官方网站上有一个安装指南: MongoDB Install as a Service on Linux
答案 2 :(得分:0)
Makefile(位于~/webapps/mongodb
下面)可能如下所示:
# Mongodb Makefile
start restart:
~/webapps/mongodb/mongodb-linux-x86_64-<your distribution>/bin/mongod --auth --dbpath ~/webapps/mongodb/data --port 12345 --fork --logpath ~/webapps/mongodb/logs/mongodb.log
stop:
~/webapps/mongodb/mongodb-linux-x86_64-<your distribution>/bin/mongod --port 12345 --dbpath ~/webapps/mongodb/data --shutdown
请务必事先创建日志文件夹。
mkdir logs
@ Arugin的回答不适用于运行的多个mongodb实例。
答案 3 :(得分:0)
我发现这对webfaction
有用:
在您的$HOME/webapps/mongo40
文件夹中创建mongo_restart.sh bash
脚本
`ps -A | grep -q '[m]ongod'`
if [ "$?" -eq "0" ]; then
exit 0
else
nohup $HOME/webapps/mongo40/mongo64-rhel70/bin/mongod --auth --dbpath $HOME/webapps/mongo40/data/ --port <port number> &
exit 0
然后使用crontab -e
将其添加到您的crontab中:
@reboot nohup /home/<userfolder>/webapps/mongo40/<mongo install folder>/bin/mongod --auth --dbpath $HOME/webapps/mongo40/data/ --port <port number>
*/2 * * * * /home/<userfolder>/webapps/mongo40/mongo_restart.sh
如果bash脚本发现它不在内存中,它将每2分钟检查并重新启动mongo。