Я установил PostgreSQL на CentOS 5.5 довольно стандартным способом:
rpm -ivh http://yum.pgrpms.org/reporpms/9.0/pgdg-centos-9.0-2.noarch.rpm
yum install postgresql90-server postgresql90-contrib
chkconfig postgresql-90 on
/etc/init.d/postgresql-90 initdb
Но по какой-то причине я не могу использовать его с service
команда, потому что у нее нет имени, например, если я service --status-all
Я получаю следующее:
master (pid 3095) is running...
(pid 3009) is running...
rdisc is stopped
Или даже просто /etc/init.d/postgresql-90 status
:
(pid 3009) is running...
Итак, как мне дать ему имя, чтобы мне не приходилось каждый раз вводить весь путь к сценарию инициализации?
Имя сервиса - это просто имя скрипта, т.е. postgresql-90
.
Однако я только что установил postgres, следуя вашим командам над сценарием инициализации, который на самом деле называется postgresql-9.0
не postgresql-90
.
$ sudo /sbin/service postgresql-9.0 status
(pid 16670) is running...
Я уверен, что вам очень хочется узнать, почему он не сообщает вам название службы, не так ли? Это потому что /etc/rc.d/init.d/postgresql-9.0
не вызывает функцию status
правильно:
status -p /var/run/postmaster-${PGMAJORVERSION}.${PGPORT}.pid
Из /etc/rc.d/init.d/functions
:
status() {
local base pid pid_file=
# Test syntax.
if [ "$#" = 0 ] ; then
echo $"Usage: status [-p pidfile] {program}"
return 1
fi
...
Таким образом /etc/rc.d/init.d/postgresql-9.0
должно быть
status -p /var/run/postmaster-${PGMAJORVERSION}.${PGPORT}.pid $0
и вывод правильный:
$ sudo /sbin/service postgresql-9.0 status
postgresql-9.0 (pid 16670) is running...