当我连接(ssh@..)到我们的服务器并运行 mongoDb(mongod --dbPath..)时,一切都运行正常。
但是,一旦我关闭 powershell,mongoDb 也会关闭。这是为什么呢?
这可能与用户有关,或者我还需要做其他什么?
答案1
关闭终端(不是 PowerShell,而是 PowerShell 运行的终端窗口在) 会自动关闭正在内部运行的 SSH 客户端。断开连接会导致从 SSH 服务器注销,同样,远程进程也会收到“挂断”信号,大多数进程会将其解释为指示它们应该退出。
虽然诸如 mongod 之类的守护进程有不同的解释(它们通常将其视为“重新加载”信号),所以它可能不是直接地导致 mongod 退出,但我怀疑它是间接导致这一点的。
不仅如此,你的服务器可能被设置为故意杀死全部注销后剩余的用户进程;这通常是 Linux 发行版中的默认设置。它提醒您应通过系统的服务管理器启动服务,而不是直接从用户的 shell 启动。
您的服务器很可能使用 systemd,那么所有后台服务都应通过 systemd 使用systemctl start mongod
和类似方式进行管理。以这种方式启动的服务不会附加到您的 SSH 连接。
如果您需要 mongod 的自定义参数,可以将其添加到 mongod.service 中,也可以将整个内容复制到例如“mongod-custom.service”中。(自定义 .service 文件可以放在 /etc/systemd/system 中。)