Назад | Перейти на главную страницу

Файл .pid прокси-сервера Squid исчезает через несколько секунд при запуске

У меня есть два виртуальных сервера 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 исчезает, этот узел просто продолжает работать (он просто не прокси, а думает работает) а на здоровую не переключается.

В заключение: я хочу, чтобы мой кальмар запускался правильно, чтобы он не терял свой 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