Squid Proxy .pid 文件在启动几秒钟后消失

Squid Proxy .pid 文件在启动几秒钟后消失

我有两个相同的虚拟 Ubuntu 服务器,并且都安装了 Squid 代理。问题是 Squid 在服务器启动时会创建 .pid 文件,但 10-20 秒后它就消失了,我必须手动输入:

/usr/local/squid/sbin/squid

然后它就可以正常工作了,.pid 文件不会消失。我希望我的 Squid 在服务器启动时启动,并且该 .pid 文件不会消失。我尝试创建 init.d 文件 /etc/init.d/run_squid

#! /bin/sh
/usr/local/squid/sbin/squid
exit0

然后

update-rc.d run_squid defaults
update-rc.d run_squid enable 

我得到:

error: run_squid Default-Start contains no runlevels, aborting

我也尝试过

crontab -e
@reboot /scripts/squid.sh

当我运行它时什么也没有发生,即使我授予了权限。

我需要 .pid 正常运行,这样我的集群才能正常工作(我的集群由 corosync 和 pacemaker 组成),因为现在的问题是,当其中一个节点 .pid 消失时,该节点只是继续工作(它只是不代理,但它认为它可以工作),但它不会切换到健康的节点。

总结一下:我希望我的 squid 能够正常启动,并且不会丢失它的 pid,并且如果其中一个丢失了 .pid 文件,节点就会切换。

答案1

这个问题的解决方案是:我们必须创建 systemd 服务,所以第一件事就是创建一个服务

vim /lib/systemd/system/squid.service

然后开始区分大小写的部分:

[Unit]
Description=Squid Web Proxy.
[Service]
Type=simple
PIDFile=/usr/local/squid/var/run/squid.pid
ExecStart=/usr/local/squid/sbin/squid
[Install]
WantedBy=multi-user.target

然后我们必须去

cd /lib/systemd/system/
cp squid.service /etc/systemd/system/squid.service
chmod 644 /etc/systemd/system/squid.service

现在我们可以通过输入以下命令来启动 squid 服务:

systemctl start squid

为了使此服务在每次启动服务器时启动,我们必须输入

systemctl enable squid

相关内容