Файл PID зникає. Перевірте, як systemd запускає Squid.
Узгодьте поведінку Squid у передньому плані чи як демона з його systemd-юнітом, перш ніж вважати зникаючий файл PID проблемою прав.
Якщо файл PID Squid з'являється і відразу зникає, порівняйте Type= завантаженого юніта з фактичним виконуваним файлом і його аргументами. Служба Type=simple очікує, що запущений процес залишиться головним процесом. Команда, яка переходить у режим демона і дозволяє цьому процесу завершитися, дотримується іншого договору; systemd може вважати її завершеною і знести решту процесів служби.
| Параметр | Власник і призначення |
|---|---|
pid_filename | Squid записує свій PID за цим шляхом у версіях, які надають цю директиву |
PIDFile= | systemd читає PID із цього шляху там, де ця модель служби його потребує |
PIDFile= не створює файл і не перетворює команду з переходом у демон на процес переднього плану. У схемі з форком тип служби, поведінка демона і шлях мають збігатися. У схемі переднього плану менеджер має відстежувати передбачений постійний процес.
Squid розрізняє -N, тобто уникнення режиму демона, і --foreground, тобто утримання батька до завершення дочірніх процесів. Вибирайте за збіркою та організацією служби. Пакунковий юніт може натомість використовувати сповіщення про готовність або інші параметри, залежні від збірки; зберігайте цю модель під час налаштування.
Тепер порівняйте журнал із повідомленнями запуску Squid. Синтаксична помилка, недоступний робочий каталог або фатальна ініціалізація справді можуть зупинити службу та видалити її файл PID. Саме лише зникнення не відрізняє такий вихід від неправильного відстеження процесу. Виправте причину, яку підтверджують ці повідомлення, замість того щоб раз за разом змінювати власника каталогу.