相关疑难解决方法(0)

使用Supervisord运行PostgreSQL

我想在Ubuntu 10.04上使用Supervisor运行PostgreSQL 9.1.目前,我使用init脚本手动启动PostgreSQL:

/etc/init.d/postgresql start
Run Code Online (Sandbox Code Playgroud)

根据这篇文章:http://nicksergeant.com/using-postgresql-with-supervisor-on-ubuntu-1010/,我需要修改PostgreSQL配置,使其在TCP端口而不是Unix套接字上运行,以便使PostgreSQL与Supervisor一起工作.

关于这种方法,我有两个问题:

  1. 考虑到这更像是黑客攻击,这样做是否有任何暗示(例如安全/权限,性能等)?

  2. 为什么我们不能postgresql在Supervisor配置中运行相同的init脚本?相反,如上面的链接所示,它运行postmaster

更新:

感谢下面两个答案的有用建议,我已经为Supervisor设置了一个脚本来直接调用PostgreSQL:

#!/bin/sh

# This script is run by Supervisor to start PostgreSQL 9.1 in foreground mode

if [ -d /var/run/postgresql ]; then
    chmod 2775 /var/run/postgresql
else
    install -d -m 2775 -o postgres -g postgres /var/run/postgresql
fi

exec su postgres -c "/usr/lib/postgresql/9.1/bin/postgres -D /var/lib/postgresql/9.1/main -c config_file=/etc/postgresql/9.1/main/postgresql.conf"
Run Code Online (Sandbox Code Playgroud)

我还设置了配置:/etc/postgresql/9.1/main/start.confmanual让PostgreSQL不开机自动启动(然而,这不是很清楚,我是否该配置加载).然后我为postgres设置Supervisor配置为:

[program:postgres]
user=root
group=root
command=/usr/local/bin/run_postgresql.sh
autostart=true
autorestart=true
stderr_logfile=/home/www-data/logs/postgres_err.log
stdout_logfile=/home/www-data/logs/postgres_out.log
redirect_stderr=true
stopsignal=QUIT
Run Code Online (Sandbox Code Playgroud)

所以现在,我可以 …

postgresql ubuntu supervisord postgresql-9.1

5
推荐指数
1
解决办法
6414
查看次数

标签 统计

postgresql ×1

postgresql-9.1 ×1

supervisord ×1

ubuntu ×1