无法从 init.d 脚本连接到 postgresql 数据库 (Debian)

无法从 init.d 脚本连接到 postgresql 数据库 (Debian)

运行良好的脚本在放入 /etc/init.d/ 脚本(consolenew)以在启动时激活时通常会失败。具体来说,它无法打开 PostgreSQL 数据库,并给出错误:could not connect to server: Connection refused

init.d/console新设置:

#### BEGIN INIT INFO
# Provides: consolenew
# Required-Start: $all $postgresql $network
# Required-Stop: $all $postgresql $network 
# Default-Start: 2 3 4 5
# Default-Stop: 
# Short-Description: ....
#### END INIT INFO

/path-to-file/consolenew.sh &

系统是 Debian 8。这里缺少什么才能让 PostgreSQL 工作?

答案1

最有可能的是,该脚本放置在/etc/init.d/scripts由未在 postgresql RDBMS 中表示的用户激活的位置(很可能该用户是root)。检查设置中的脚本/etc/init.d/scripts是否从 postgersql 中存在的用户/角色激活,并且该用户允许在pg_gba.conf文件中连接。

答案2

如果我将程序移至 Gnome 桌面管理器 (/etc/gdm3/Init) 的 Init 脚本,则该程序可以运行(即 PostgreSQL 及时加载以进行连接)。

除非有人有其他解决方案,否则我会使用它。

编辑:如果指定了 After: postgresql 服务,则 systemd 脚本也可以工作。

相关内容