我试图阻止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)托pipe的OpenVZ虚拟化ubuntu-14.04-x86_64-minimal服务器。 我没有做什么比configuration区域设置为UTF-8和安装PostgreSQL: aptitude install postgresql-9.3 postgresql-contrib-9.3 。
这个StackOverflow的答案build议在/proc/上设置权限,但我不能相信默认权限是错误的? 我按照这个build议把/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"
我也创build了一个全新的用户( 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上创build一个新的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
之后,服务命令将失败,并显示“Error:/ proc must be mounted”(重新启动后):
# 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.
我已经在主机提供商处创build了一张票。
主机提供商已经解决了这个问题。 我不知道到底是什么。 他们回答我的票:
We found an selinux issue on the hostnode, this has been permanently correct.