Назад | Перейти на главную страницу

Не удается остановить службу (PostgreSQL) в Ubuntu 14.04 с минимальным OpenVZ

Я пытаюсь остановить PostgreSQL, но это приводит к странной ошибке: /proc/:

root@dw0wanydbpv14fred:~# service postgresql stop
 * Stopping PostgreSQL 9.3 database server
 * Error: /proc must be mounted                             <----- what ???
  To mount /proc at boot you need an /etc/fstab line like:
      proc   /proc   proc    defaults
  In the meantime, run "mount proc /proc -t proc"
Error: pid file is invalid, please manually kill the stale server process. [fail]

Но /proc уже смонтирован:

# ls -ld /proc
drwxr-xr-x 33 root root 0 Aug 27 23:52 /proc

Попытка смонтировать его снова (как следует из сообщения об ошибке) не удалась:

# mount proc /proc -t proc
mount: proc already mounted

Фактически он монтируется автоматически:

# cat /etc/fstab
proc  /proc       proc    defaults    0    0
none  /dev/pts    devpts  rw,gid=5,mode=620    0    0
none  /run/shm    tmpfs   defaults    0    0

Вы хоть представляете, что может происходить? Почему я не могу остановить PostgreSQL, почему ошибка про /proc/?

ps работает:

# ps
  PID TTY          TIME CMD
  508 pts/1    00:00:00 bash
  591 pts/1    00:00:00 ps

Это недавно созданный OpenVZ, виртуализированный ubuntu-14.04-x86_64-minimal сервер, размещенный на Wable (wable.com). Я не сделал ничего, кроме настройки локали на UTF-8 и установки PostgreSQL: aptitude install postgresql-9.3 postgresql-contrib-9.3.

Этот ответ StackOverflow предложить установить разрешения на /proc/ но я не могу поверить, что разрешения по умолчанию неправильные? Я последовал предложению изменить разрешения /proc/ на 755, не помогло.


Обновить через 1 день: Дополнительная информация по запросу:

# ls -l /proc/meminfo
-rwx--x--x 1 root root 0 Aug 31 01:03 /proc/meminfo

# ls -la /proc | grep '???'     # finds nothing
#

# uname -a
Linux dw0wanydbpv14fred 2.6.32-042stab092.2 #1 SMP Tue Jul 8 10:35:55 MSK 2014 x86_64 x86_64 x86_64 GNU/Linux

Бег ps поскольку другой пользователь (Postgres) не работает: (кажется странным. И делает service postgresql stop сменить пользователя?)

root@dw0wanydbpv14fred:~# su - postgres
postgres@dw0wanydbpv14fred:~$ ps
Error: /proc must be mounted
  To mount /proc at boot you need an /etc/fstab line like:
      proc   /proc   proc    defaults
  In the meantime, run "mount proc /proc -t proc"

Я также создал нового пользователя (useradd username), была та же ошибка.

dmesg вообще ничего не говорит:

# dmesg                                                                                                                                                 
#

И var/log/syslog не содержит ничего интересного, только несколько неинтересных сообщений от cron.

После выполнения вышеуказанных команд я предоставил разрешение на чтение для /proc/meminfo всем, не помогло:

# ll -l /proc/meminfo 
-rwxr-xr-x 1 root root 0 Aug 31 01:13 /proc/meminfo*

(Я все еще получаю ту же ошибку: Error: /proc must be mounted.)

Обновление 2: Я могу воспроизвести ошибку так:

Создайте новый OpenVZ ubuntu-14.04-x86_64-minimal на Wable.com. Затем:

apt-get update
apt-get upgrade
locale-gen en_US.UTF-8
update-locale LANG=en_US.utf-8 LC_MESSAGES=POSIX
apt-get install postgresql-9.3 postgresql-contrib-9.3

После этого служебные команды завершаются с ошибкой «Ошибка: / proc должен быть смонтирован» (также после перезагрузки):

# service postgresql status
9.3/main (port 5432): online
# service postgresql stop
 * Stopping PostgreSQL 9.3 database server   
 * Error: /proc must be mounted
  To mount /proc at boot you need an /etc/fstab line like:
      proc   /proc   proc    defaults
  In the meantime, run "mount proc /proc -t proc"
Error: pid file is invalid, please manually kill the stale server process.

Я создал билет у хостинг-провайдера.

Хостинг-провайдер устранил проблему. Я не знаю точно, что это было; на мой билет ответили:

We found an selinux issue on the hostnode, this has been permanently correct.