我需要在 Linux 启动时运行我的第二个 postgresql 实例。我在 rc.local 中添加了此命令(如在 postgresql 文档中):
/usr/lib/postgresql/9.1/bin/pg_ctl start -l logfile -D /var/lib/postgresql/9.1/main2
但如果我尝试运行 pg_ctl:
cannot be run as root
Please log in (using, e.g., "su") as the (unprivileged) user that will
own the server process.
t, it gives me this error:
我如何指定以 postgres 身份运行该命令,但实际上以 root 身份执行它(因为 root 拥有它)。
或者是否有更好的方法来为 postgresql 制作第二个初始化脚本?
PS(我使用的是 Ubuntu)
答案1
如果您使用的是 Ubuntu(看起来您就是这样的),那么您不需要自己做任何这些事情。
pg_ctlcluster
阅读、pg_createcluster
、的文档pg_lsclusters
。这些是 Ubuntu 软件包的一部分pg_wrapper
,提供内置的多个实例和版本的管理。