我的中有以下脚本rc.local
:
这会在端口 8080、8081、8082、8083 上运行服务。它们实际上是需要 mongod 才能启动的节点服务器。
因此,我编辑/lib/systemd/system/rc-local.service
并添加了:
After=network.target syslog.target mongod.service
但事实并非如此:脚本仍然失败,因为在运行时,它们发现数据库服务器已关闭。
我可能做错了什么?我该如何调试它?
更新:现在我添加了After=
,错误不是 mongoDb 连接(我查看了旧日志),而是 rc-local 似乎根本没有启动。systemctl restart rc-local.service
但是手动运行是可行的...
更新2:通过取出syslog.target
,从而得到:
After=network.target mongod.service
有一个奇怪的副作用,一半的服务器(4 台中的 2 台)启动正常,而另一半无法连接到数据库。这让我认为 systemd 运行 mongodb,但在运行 rc-local 时它尚未准备好接受连接
答案1
作为一种解决方法,为什么不将 mongodb 设置为不使用 systemctl 启动,而是将其设置为在所需项目之前在 rclocal 中启动?