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