2012-07-29 147 views
4

我想讓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

回答

1

通常情況下,您可以在系統的初始化框架中執行此操作。在傳統的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

3

下面是從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