我在我的Django应用程序上配置了一个数据库连接到Postgres服务器。此服务器正在EC2实例上运行。每隔一段时间(这篇文章的3倍),当我运行我的django应用程序时,我会看到这一点
Is the server running on host "xx.com" (13.xx.xx.xx) and accepting
TCP/IP connections on port 5432?
当我运行这个:sudo service postgresql status
我得到
postmaster dead but pid file exists
当我跑sudo service postgresql restart
时,我得到了
Stopping postgresql service: [FAILED]
Starting postgresql service: [ OK ]
我尝试删除/ var / lib / pgsql9 / data中的postmaster.pid文件但是这似乎没有解决问题。
当我重新启动服务器时似乎工作正常。但这是我使用的Windows用户类型解决方案。
- 我还是新手使用postgres。
以下是服务器关闭时日志文件(在/ var / lib / pgsql9 / data / pg_log中)的内容:
sh: line 46: kill: (5102) - No such process
sh: line 46: kill: (5103) - No such process
sh: line 46: kill: (5105) - No such process
sh: line 46: kill: (5106) - No such process
sh: line 46: kill: (5126) - No such process
sh: line 46: kill: (5127) - No such process
sh: line 46: kill: (5130) - No such process
sh: line 46: kill: (5150) - No such process
sh: line 46: kill: (5151) - No such process
sh: line 46: kill: (5154) - No such process
您的应用程序显然无法访问服务器。该错误表明应用程序/客户端正在尝试在xx.com上找到服务器,在该服务器上找不到在端口5432上运行的postmaster服务并接受连接。
根据您提供的其他信息,看起来有些东西会在后端杀死postmaster,当发生这种情况时,postmaster.pid文件不会被删除。只要有postmaster.pid文件,服务状态就会显示此消息postmaster dead but pid file exists
。
尝试查看数据库日志(/ pg_log)以获取有关崩溃部分的更多信息。