首页 > 数据库 > 数据库开发技术 > Linux系统mongodb出现问题
今天在笔记本上使用mongodb发现打开出现错误:
ERROR: child process failed ,exited with error number 1ERROR: child process failed ,exited with error number 1百度发现原因是mongodb未正常关闭。应该是我直接shutdown,没有先关闭mongodb。最简单的解决方法就是将data/db目录所有的内容都删除,但是这样会导致你mongodb存储的数据都没了,因为我笔记本的mongodb没有有用的数据,我就直接这样操作了。
但是,这样没有完全解决问题。难道我下次关机之后,又要这样操作,这岂不是很麻烦。于是就想到能不能在关机之前先执行一些操作,Linux有一个目录存放着系统开机和关机要执行的文件。好像是etc下rc*.d这个目录里面以K开头的文件会在关机的时候运行。
不过我看了下,我的manjaro系统没有这个目录。百度上关于的manjaro的资料本来就没有多少,原因肯定是找不到的。只能选择其他方法了。
其实不怕麻烦的话,只要在每次执行shutdown命令的时候,先将mongodb关闭。我查了一下,有很多方法可以正常关闭mongodb,比如kill -15 PID。这样我还要先ps看一下mongodb进程的PID,于是我又发现了一个更优雅和方便的命令:
mongod --shutdown那么,能不能一行执行两个命令呢?我们要知道在Linux没有不能的操作。Linux下一行执行两个命令有三种方法:&&、 || 和分号。
&&是当第一个命令执行成功后执行第二个命令,如果第一个命令失败则第二个不执行。||则是相反。而分号表示第一个命令运行完后运行第二个命令。很明显,使用分号最为合适,因为mongodb并不是每次都会运行的,如果选择&&,没有运行mongodb的话,mongod --shutdown会运行失败。
不过每次关机都敲这么长的命令是不是有点太麻烦呢?没事,Linux别名alias命令可以解决。这个命令是真的方便,使用的话如下:
alias shutdownd="mongod --shutdown;shutdown"这样你只要敲shutdownd就等于后面两个命令。不过这样只是在本次终端有效,关机后失效。如果要永久生效,需要写入~/.bashrc这个文件里面,这里面定义了一些命令,看一下就知道了。
原文作者:Python成长路;如有侵权,请联系管理员删除。