ell*_*iel 3 python postgresql psycopg2
我刚刚开始使用 psycopg2 模块访问本地 PostgreSQL 服务器,我想要一种以编程方式检查服务器是否已启动的方法,以便我的程序可以在我尝试启动服务器时处理错误:
psqldir = 'C:/Program Files/PostgreSQL/9.2/bin' # Windows
username = os.environ.get('USERNAME')
dbname = 'mydb'
os.chdir(psqldir)
os.system('pg_ctl start -D C:/mydatadir') # Error here if server already started
conn = psycopg2.connect('dbname=' + dbname + ' user=' + username)
cur = conn.cursor()
Run Code Online (Sandbox Code Playgroud)
我做了一些实验,似乎这返回了“0”或“3”,这可以解决我的问题,但我没有在 PostgreSQL/psycopg2 手册上找到任何信息来确认这是否是记录在案的行为:
server_state = os.system('pg_ctl status -D C:/mydatadir')
Run Code Online (Sandbox Code Playgroud)
最好的办法是什么?谢谢!
-w
等待启动或关闭完成。等待是关机的默认选项,但启动时则不然。当等待启动时,pg_ctl 会重复尝试连接到服务器。当等待关闭时,pg_ctl 等待服务器删除其 PID 文件。pg_ctl 根据启动或关闭是否成功返回退出代码。
您还会发现pg_ctl status有用的:
status模式检查服务器是否正在指定的数据目录中运行。如果是,则会显示 PID 和用于调用它的命令行选项。如果服务器未运行,则进程返回退出状态 3。
| 归档时间: |
|
| 查看次数: |
7180 次 |
| 最近记录: |