postgresql - 如何在 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) 选项。
解决方案
我相信你将无法做到这一点pg_ctl
。
直接通过服务器可执行文件启动 PostgreSQL 是完全可以的postgres.exe
。或者,您可以使用pg_ctl register
来创建服务并启动该服务。
推荐阅读
- php - Prestashop - 将家庭中的产品详细信息与相关网址链接
- sql - 选择 Query 获取与 SQL 中 where 条件匹配和不匹配的数据
- node.js - 使用“异步”库将数据插入数据库时如何避免重复记录
- python - 如何创建一个大小为 N KB 且重复“Hello World”的文本文件
- c# - 关闭多个表单 C#
- reactjs - 如何使用 react + redux 在单击的行旁边添加动态行?
- android - !!!Binder 交易失败!!!(包裹大小 = 2585116)
- c# - 如何投影OpenGL控件的顶部和底部区域(圆柱投影)?
- java - 如何修复按下按钮时铃声/警报的错误?
- android - FCM XMPP 与 HTTP 可靠性