无法在 Ubuntu 14.04 最小 OpenVZ 中停止服务(PostgreSQL)

无法在 Ubuntu 14.04 最小 OpenVZ 中停止服务(PostgreSQL)

我正在尝试停止 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

这是由 Wable (wable.com) 托管的新配置的 OpenVZ 虚拟化ubuntu-14.04-x86_64-minimal服务器。我所做的只是将语言环境配置为 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

以另一个用户(Postgres)身份运行ps不起作用:(感觉很奇怪。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:我可以像这样重现该错误:

在 Wable.com 上创建一个新的 OpenVZ ubuntu-14.04-x86_64-minimal。然后:

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.

我已经在托管服务提供商处创建了一张票。

答案1

托管服务提供商已修复此问题。我不知道具体是什么问题;他们回复了我的问题:

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

相关内容