Squid의 PID 파일이 나타났다가 곧바로 사라진다면, 로드된 유닛의 Type= 값을 실제 실행 파일과 인수에 견주어 보세요. Type=simple 유형의 서비스는 시작된 프로세스가 주 프로세스로 남기를 기대합니다. 데몬으로 전환해 그 프로세스가 끝나도록 두는 명령은 다른 계약을 따르므로, systemd는 이를 완료로 보고 나머지 서비스 프로세스를 정리할 수 있습니다.

설정담당과 목적
pid_filename이 지시문이 있는 버전에서 Squid는 이 경로에 자신의 PID를 기록합니다
PIDFile=해당 서비스 모델이 필요로 하는 곳에서 systemd는 이 경로의 PID를 읽습니다

PIDFile=는 파일을 만들지 않고, 데몬으로 전환하는 명령을 포그라운드 프로세스로 바꾸지도 않습니다. 포크 방식 구성에서는 서비스 유형, 데몬 동작, 경로가 서로 맞아야 합니다. 포그라운드 구성에서는 관리자가 의도한 상주 프로세스를 추적해야 합니다.

Squid는 -N 즉 데몬 모드를 피하는 방식과 --foreground 즉 자식이 끝날 때까지 부모를 유지하는 방식을 구분합니다. 빌드와 서비스 구성에 따라 고르세요. 패키지된 유닛은 대신 준비 알림이나 빌드별 다른 옵션을 쓸 수 있으므로, 사용자 지정할 때 그 모델을 유지하세요.

이제 저널을 Squid의 시작 메시지와 비교하세요. 구문 오류, 접근할 수 없는 런타임 디렉터리, 치명적인 초기화는 실제로 서비스를 멈추고 PID 파일을 지울 수 있습니다. 사라짐만으로는 그 종료를 잘못된 프로세스 추적으로 구분할 수 없습니다. 디렉터리 소유권을 거듭 바꾸지 말고 그 메시지가 뒷받침하는 원인을 고치세요.

관련 글