Ubuntu
Squid Proxy .pid 文件在啟動幾秒鐘後消失
我有兩個相同的虛擬 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