Я пытаюсь остановить 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.