Если файл PID Squid появляется и сразу исчезает, сравните Type= загруженного юнита с фактическим исполняемым файлом и его аргументами. Служба Type=simple ожидает, что запущенный процесс останется основным процессом. Команда, которая уходит в режим демона и позволяет этому процессу завершиться, следует другому договору; systemd может счесть её завершённой и снять остальные процессы службы.

ПараметрВладелец и назначение
pid_filenameSquid записывает свой PID по этому пути в версиях, где есть эта директива
PIDFile=systemd читает PID из этого пути там, где эта модель службы в нём нуждается

PIDFile= не создаёт файл и не превращает команду с уходом в демона в процесс переднего плана. В схеме с fork тип службы, поведение демона и путь должны совпадать. В схеме переднего плана менеджер должен отслеживать предполагаемый постоянный процесс.

Squid различает -N, то есть отказ от режима демона, и --foreground, то есть удержание родителя до завершения дочерних процессов. Выбирайте по сборке и организации службы. Упакованный юнит может вместо этого использовать уведомление о готовности или другие параметры, зависящие от сборки; сохраняйте эту модель при настройке.

Теперь сравните журнал с сообщениями запуска Squid. Синтаксическая ошибка, недоступный рабочий каталог или фатальная инициализация действительно могут остановить службу и удалить её файл PID. Само исчезновение не отличает такой выход от неверного отслеживания процесса. Устраните причину, которую подтверждают эти сообщения, вместо того чтобы раз за разом менять владельца каталога.

Похожие статьи