使用以下命令启动 Squid 代理服务器时出现此错误sudo squid -z
fatal: ipc::mem::segment::create failed to shm_open(/squid-cf__metadata.shm): 13 permission denied
我该如何修复它?我使用的是 Squid 3.5.26 版。我尝试了在网上找到的所有修复方法,但都不起作用。
我尝试实施在网上找到的下面的修复程序:
Just add the following line to your /etc/fstab file:
shm /dev/shm tmpfs nodev,nosuid,noexec 0 0
After that use (as root):
# mount shm
不幸的是,它不起作用。网络上的另一个可能的修复方法是读取 squid.pid 时出错
squid: ERROR: Could not read pid file
/var/run/squid.pid: (13) Permission denied
不幸的是,当我查看我的目录时,我找不到squid.pid
。
我该如何让我的 Squid 工作?谢谢。
答案1
squid
您以错误的用户身份运行,从而创建了具有错误权限的文件。
squid:错误:无法读取 pid 文件
您需要运行sudo
:sudo squid -z
。
致命:ipc::mem::segment::create 无法 shm_open(/squid-cf__metadata.shm):13 权限被拒绝
您需要.shm
从中删除 Squid 的文件/dev/shm
或者分配正确的权限。
$ sudo rm -v /dev/shm/squid*.shm
还要确保:
- Squid 的日志目录(
/var/log/squid
?)归正确的用户(?)所有proxy
。 - Squid 的缓存目录(
/var/spool/squid
?)归正确的用户所有。
有关完整示例,请查看以下 Docker 容器:sameersbn/docker-squid
。
答案2
根据这个帖子添加以下配置/etc/squid/squid.conf
cache_effective_user nobody
cache_effective_group nobody