Ubuntu

Squid Proxy .pid 文件在啟動幾秒鐘後消失

  • April 30, 2020

我有兩個相同的虛擬 Ubuntu 伺服器,並且都有 Squid Proxy。問題是 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 和起搏器組成),因為現在的問題是當一個節點 .pid 消失時,該節點只會繼續工作(它根本不代理,但它認為它有效),但它不會切換到健康的。

總結:我希望我的 squid 正常啟動,它不會失去它的 pid,並且如果其中一個失去 .pid 文件,節點會切換。

這個問題的解決方法是:我們要創建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

引用自:https://serverfault.com/questions/1014610