使用以下命令启动 Squid 代理服务器时出现此错误sudo squid -z
:
fatal: ipc::mem::segment::create failed to shm_open(/squid-cf__metadata.shm): 13 permission denied
我该如何修复它?我正在使用3.5.26
Squid 版本,我尝试实施我在网上找到的以下修复程序:
只需将以下行添加到您的
/etc/fstab
文件中:shm /dev/shm tmpfs nodev,nosuid,noexec 0 0
之后使用(以 root 身份):# mount shm
不幸的是,它不起作用,网络上的另一种可能的修复方法是错误读取squid.pid
:
squid: ERROR: Could not read pid file /var/run/squid.pid: (13) Permission denied
当我查看目录时,我找不到squid.pid
。我该如何让我的 Squid 工作?
答案1
致命:ipc::mem::segment::create 无法 shm_open()
此错误与拒绝访问共享内存段(man shm_open
)。问题是,您可能squid
以错误的用户运行进程(之前或现在)。
解决方案是从中删除.shm
文件/dev/shm
:
$ sudo rm -v /dev/shm/squid*.shm
要squid
以正确的用户身份运行(例如proxy
),使用sudo
,确保您的cache_effective_user
配置文件中的内容正确(squid.conf
),您的缓存和日志目录归该用户所有。
检查以下 Docker 容器sameersbn/docker-squid
作为工作示例。