我的要求如下:
1.应用程序启动后,PostgreSQL服务将由应用程序启动
1.应用程序关闭后,PostgreSQL服务将被应用程序关闭
1....所以我将负责PostgreSQL的设置和运行脚本和启动服务等
目前我是这样做的:
1.当我在一个新进程中启动PostgreSQL时,我重定向了RedirectStandardError
和RedirectStandardOutput
,这是一个静默启动,用户看不到命令窗口等
问题是
- 当我编写这个代码时,我查找消息字符串,但只支持英语。换句话说,我过去在
RedirectStandardOutput
中查找字符串success
,但现在我们支持多种语言,所以比较失败。
有什么方法可以知道PostgreSQL设置是否成功启动,PostgreSQL服务是否正在运行?
我通过在单独的进程中调用pg_ctl. exe来启动PostgreSQL。
6条答案
按热度按时间vjhs03f71#
(we正在执行类似的操作)您使用此批处理文件星星
Postgres
服务和[停止]服务
其中
C:\Program Files\PostgreSQL\9.0\bin\pg_ctl.exe
是PostgreSQl
的安装位置,您可以从现在运行批处理文件来检查服务是否确实在运行,您可以使用Process running中的此代码检查
postgres.exe
是否正在运行。也可以是1. checking-if-windows-application-is-running 2. how-can-i-know-if-a-process-is-running
cx6n0qe32#
启动一个数据库连接,如果它工作,PostgreSQL正在运行。如果没有,出错了。
ldfqzlk83#
您正在尝试将PostgreSQL用作嵌入式数据库,以便与用户完全不可见的应用程序绑定。
这样做效果并不好。PostgreSQL的设计不是这样的,它显示了:
做你想做的事情是可能的,只是烦人和困难,因为PostgreSQL不是为嵌入式数据库而设计的。
我真的很想看到一个低级别的PostgreSQL诊断/状态客户端,它可以使用共享内存消息传递来向邮局局长请求一个简单的状态报告。这将是诊断安装问题的好方法,特别是在所有坏掉的Windows机器上。
也许你可以考虑在与pgsql黑客团队讨论后,将你需要的功能原型化,并向commitfest提交一个补丁?PostgreSQL是开源的,所以如果你愿意实现它们,并且你能够说服其他人应该包含它们,你就有可能得到你需要添加的功能。
vxf3dgd44#
使用ServiceController类启动/停止服务。
30byixjq5#
Link这会对你有帮助。在此之前检查你的数据库连接。或者启动/停止IIS服务器(如果正在运行)
byqmnocz6#
我建议评估这个库:https://github.com/mysticmind/mysticmind-postgresembed
它主要用于测试场景,但也可以满足其他需要。