首页 > 解决方案 > 如何在 Windows 上无头(无终端)启动 postgres 服务器?

问题描述

使用 Postgres 9.5 和 libpqxx c++ 绑定,我想启动一个未安装在用户机器上的 postgres 副本,而是打包在我的应用程序目录中。目前,我正在使用 pg_ctl.exe 来启动和停止服务器,但是当我们这样做时,pg_ctl.exe 似乎在新的终端窗口中启动 postgres.exe。我希望它以无头状态启动 postgres.exe,但不知道如何。

我尝试启用/禁用日志收集器,将日志记录方法设置为 csv 文件(而不是 stdout/stderr),以及其他一些与日志记录相关的事情,但我认为问题不在于日志记录。

我也尝试过手动运行 postgres.exe(没有 pg_ctl),并且可以通过将其作为后台进程生成并重定向日志来使其无头运行,但我更喜欢使用“pg_ctl start”api 来“等待启动” " (-w) 和它提供的 "timeout" (-t) 选项。

标签: postgresql

解决方案


我相信你将无法做到这一点pg_ctl

直接通过服务器可执行文件启动 PostgreSQL 是完全可以的postgres.exe。或者,您可以使用pg_ctl register来创建服务并启动该服务。


推荐阅读