运行良好的脚本在放入 /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 脚本也可以工作。