尝试执行使用多处理包的 python 程序时出现错误:
File "/usr/local/lib/python2.6/multiprocessing/__init__.py", line 178, in RLock
return RLock()
File "/usr/local/lib/python2.6/multiprocessing/synchronize.py", line 142, in __init__
SemLock.__init__(self, RECURSIVE_MUTEX, 1, 1)
File "/usr/local/lib/python2.6/multiprocessing/synchronize.py", line 49, in __init__
sl = self._semlock = _multiprocessing.SemLock(kind, value, maxvalue)
OSError: [Errno 13] Permission denied
看起来用户没有访问共享内存的权限。当使用 root 权限执行时,它工作正常。
有什么解决方案以普通用户(而不是root)运行它吗?
Python版本2.6.2,操作系统是Linux 2.6.18(CentOS版本5.4),它是VPS机器。
为了使 POSIX 信号量正常工作,用户需要对共享内存进行读/写访问(/dev/shm
).
检查权限/dev/shm
。在我的笔记本电脑(Ubuntu)上,它看起来像这样:
$ ls -ld /dev/shm
drwxrwxrwt 2 root root 40 2010-01-05 20:34 shm
要永久设置正确的权限(即使在重新启动后),请将以下内容添加到您的/etc/fstab
:
none /dev/shm tmpfs rw,nosuid,nodev,noexec 0 0
没试过,只是从网上复制的论坛帖子.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)