PostgreSQL在CentOS上没有服务名称

前端之家收集整理的这篇文章主要介绍了PostgreSQL在CentOS上没有服务名称前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在CentOS 5.5上以一种非常标准的方式安装了Postgresql
  1. rpm -ivh http://yum.pgrpms.org/reporpms/9.0/pgdg-centos-9.0-2.noarch.rpm
  2. yum install postgresql90-server postgresql90-contrib
  3. chkconfig postgresql-90 on
  4. /etc/init.d/postgresql-90 initdb

但由于某种原因,我不能将它与service命令一起使用,因为它没有名称,.如果我服务–status-所有我得到以下内容

  1. master (pid 3095) is running...
  2. (pid 3009) is running...
  3. rdisc is stopped

甚至只是/etc/init.d/postgresql-90状态:

  1. (pid 3009) is running...

那么我怎么能给它一个名字,这样我每次都不必输入整个init脚本路径?

服务名称只是脚本的名称,即postgresql-90.

但是,我刚刚在init脚本上面的命令后面安装了postgres实际上叫做postgresql-9.0,而不是postgresql-90.

  1. $sudo /sbin/service postgresql-9.0 status
  2. (pid 16670) is running...

我敢肯定你很想知道它为什么不告诉你服务的名称,不是吗?这是因为/etc/rc.d/init.d/postgresql-9.0没有正确调用函数状态:

  1. status -p /var/run/postmaster-${PGMAJORVERSION}.${PGPORT}.pid

来自/etc/rc.d/init.d/functions:

  1. status() {
  2. local base pid pid_file=
  3.  
  4. # Test Syntax.
  5. if [ "$#" = 0 ] ; then
  6. echo $"Usage: status [-p pidfile] {program}"
  7. return 1
  8. fi
  9. ...

因此/etc/rc.d/init.d/postgresql-9.0应该是

  1. status -p /var/run/postmaster-${PGMAJORVERSION}.${PGPORT}.pid $0

并且输出正确:

  1. $sudo /sbin/service postgresql-9.0 status
  2. postgresql-9.0 (pid 16670) is running...

猜你在找的Postgre SQL相关文章