Ubuntu 16.04設定PostgreSQL開機啟動
由於PostgreSQL是編譯安裝的,需要設定開機啟動。對於Ubuntu系統來說,和Red Hat之類的系統稍微有一點不一樣。
首先第一步,由於我們習慣於使用Red Hat這樣的系統,所以我們需要弄一個chkconfig出來。這個命令是配置Red Hat服務啟動停止的命令,但是在Ubuntu上沒有。我們可以使用sysv-rc-conf。
sudo apt install sysv-rc-conf
安裝完成sysv-rc-conf之後,我們把他換成chkconfig。畢竟這個命令太難記住了。
sudo cp /usr/sbin/sysv-rc-conf /usr/sbin/chkconfig
接下來我們可以嘗試使用chkconfig命令來檢視
這個弄好之後,我們需要到PostgreSQL的安裝壓縮包的/postgresql-10.3/contrib/start-scripts目錄下。目錄下面有好幾個系統的配置檔案,我們這裡使用的是Ununtu就選擇linux,把這個檔案複製到/etc/init.d/下面。並賦予可執行x許可權。
postgres@postgres-N65S01:~/postgresql-10.3/contrib/start-scripts$ ls freebsd linux macos osx postgres@postgres-N65S01:~/sudo cp linux /etc/init.d/ postgres@postgres-N65S01:/etc/init.d$sudo mv linux postgresql-10.0 postgres@postgres-N65S01:/etc/init.d$chmod a+x postgresql-10.0
做完上述操作之後需要修改該檔案,主要修改下列兩個位置
prefix是postgreSQL安裝目錄,PGDATA是資料庫檔案所在目錄。修改完成之後儲存。執行下列命令,把服務設定成自動啟動即可。
postgres@postgres-N65S01:/etc/init.d$ sudo chkconfig postgresql-10.0 on postgres@postgres-N65S01:/etc/init.d$ sudo chkconfig --list | greppostgres postgresql-1 2:on3:on4:on5:on
再一次重啟主機之後,可以發現postgreSQL資料庫可以自動啟動了。
postgres@postgres-N65S01:/etc/init.d$ ps -ef | grep pgdata postgres246010 19:19 ?00:00:00 /opt/PostgreSQL-10/bin/postmaster -D /pgdata/data postgres468328530 19:43 pts/1800:00:00 grep --color=auto pgdata