FreeBSD下设置PostgreSQL自启动

前端之家收集整理的这篇文章主要介绍了FreeBSD下设置PostgreSQL自启动前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

google了一把,发现网上很少人把Postgresql自启动的方法写出来,能搜索到的,清一色都是使用port安装后,

然后在rc.conf中增加 postgresql_enable="YES" 就算是设置了自启动。

这个当然是对的,可是,除了通过port安装,还可以手动下载进行安装的啊,可是手工下载安装之后,却没有那样

的服务产生。如果要启动,通常是用postgres用户登录,然后

/usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data &

即可启动。(注:数据目录是 /usr/local/pgsql/data)

但是,如何设置自启动呢?搜罗网上,还不少人这样问,可是回答很少有满意的,

大家都说设置 postgresql_enable 即可。…… 呵呵,让人很无奈。

也有人尝试在 rc.local 中加入 /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data &

可是依然是启动失败,原因很简单,FreeBSD启动时,默认都使用root用户运行这些命令,但偏偏

Postgresql是不允许使用root启动的,郁闷吧,呵呵。。

搞了那么久,现在最好的办法,就是通过root调用其它用户来执行这条命令,可行否?of course.

下面我简单写一下:

首先,用 root 进入 /etc 目录,查找有没有 rc.local 文件,如果没有,创建一个即可。

如果已经有 rc.local 文件,那么在最后面加上如下一行:

su -m postgres -c '/usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data &'

如果没有 rc.local 文件的,则创建一个,并且写入:

#!/bin/tcsh

su -m postgres -c '/usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data &'

说明一下,这里 -m 后面的就是指定的执行用户,我这里是 postgres ,数据目录是

/usr/local/pgsql/data,各位可以根据自己的实际情况修改

好了,重启一下,然后top查看,你会发现 Postgresql 已经启动了。

其实就很简单,无非就是通过root指定另外一个用户执行相应的命令而已。对于其它像

Linux系统,估计也都差不多,man su 一下,查看一下su命令的参数就知道了。

猜你在找的Postgre SQL相关文章