在linux系统启动时启动postgresql服务器

问题描述:

我想让Linux机器上的postgresql服务器在系统启动时自动启动。 添加以下行〜/ .profile文件:在linux系统启动时启动postgresql服务器

su -c 'pg_ctl start -D /var/lib/pgsql/data ' postgres 

然而以postgres服务器未启动,直到我劳克控制台命令。然后提示我输入用户'postgres'的密码,然后服务器启动正确。

我想避免激活linux控制台和输入'postgres'用户的密码这两个extar步骤。我怎样才能做到这一点?

+1

通常这些服务器是由init.d中的一个脚本启动的,我很惊讶你需要做所有这些工作来启动服务器,因为如果你安装postgres服务器包,你的发行版会以某种方式提供这种可能性在启动时自动启动服务器。你使用什么发行版?你是如何安装postgresql的? – fvu 2012-07-29 22:39:37

+0

@fvu:伟大的思想家一样思考! :) – 2012-07-29 22:41:06

+0

@TomAnderson是的,我和你遇到的问题一样让你感到惊讶... – fvu 2012-07-29 22:41:53

通常情况下,您可以在系统的初始化框架中执行此操作。在传统的unix中,这意味着/etc/init.d脚本,但在现代脚本中,包括主要的Linux发行版,它通常有些不同。

话虽如此,在现代unix中,使用软件包管理器安装PostgreSQL通常会导致它在启动时启动,所以你甚至不需要这样做。

您正在使用哪种Linux版本,以及您如何安装PostgreSQL?

+0

我使用opensuse 12.1并从Yast repo安装postgresql。但我最近注意到opensuse 12.1中的postgresql安装不能用于自动配置。我不得不通过运行initdb和一些额外的步骤进行配置。我就像你惊讶为什么opensuse 12.1不再自动安装和配置postgresql! – othman 2012-07-29 22:51:04

+0

@othman是否确定安装了'postgresql-server'软件包,并使用Yast启动启动?还没有切换到12.1,但在我使用过的每个OpenSuse版本中,它的工作都完美无瑕。 – fvu 2012-07-29 23:05:01

+0

是的,我确定我通过yast安装它,就像我平常一样。它用于开箱即用。但最近我重新安装了opensuse 12。1格式化我的光盘后,当我像平常一样从yast安装postgresql时,我遇到了postgresql中的异常问题,因为它没有自动配置,如果我从Yast服务运行级别启用/启动服务器,我得到一个错误。这就是为什么我决定手动配置posstgresql。也许我的新安装的Opensuse 12.1有问题。我不确定是什么问题! – othman 2012-07-29 23:29:39

下面是从8.0手动将告诉您如何使用8 *,并针对不同的做到这一点的摘录:

http://www.postgresql.org/docs/8.0/static/postmaster-start.html

这里是最近发布的版本: http://www.postgresql.org/docs/9.1/static/server-start.html

在Linux系统或者添加
/usr/local/pgsql/bin/pg_ctl start -l logfile -D /usr/local/pgsql/data
/etc/rc.d/rc.local/etc/rc.local
或在PostgreSQL源代码分发中查看文件
contrib/start-scripts/linux

检查段落从“不同的系统在启动时启动守护程序有不同的约定”。

希望这会有所帮助。
Edmon