PID 파일이 사라집니다. systemd가 Squid를 시작하는 방식을 확인하세요.
사라지는 PID 파일을 권한 문제로 보기 전에 Squid의 포그라운드 또는 데몬 동작을 systemd 유닛과 맞춰 보세요.
Squid의 PID 파일이 나타났다가 곧바로 사라진다면, 로드된 유닛의 Type= 값을 실제 실행 파일과 인수에 견주어 보세요. Type=simple 유형의 서비스는 시작된 프로세스가 주 프로세스로 남기를 기대합니다. 데몬으로 전환해 그 프로세스가 끝나도록 두는 명령은 다른 계약을 따르므로, systemd는 이를 완료로 보고 나머지 서비스 프로세스를 정리할 수 있습니다.
| 설정 | 담당과 목적 |
|---|---|
pid_filename | 이 지시문이 있는 버전에서 Squid는 이 경로에 자신의 PID를 기록합니다 |
PIDFile= | 해당 서비스 모델이 필요로 하는 곳에서 systemd는 이 경로의 PID를 읽습니다 |
PIDFile=는 파일을 만들지 않고, 데몬으로 전환하는 명령을 포그라운드 프로세스로 바꾸지도 않습니다. 포크 방식 구성에서는 서비스 유형, 데몬 동작, 경로가 서로 맞아야 합니다. 포그라운드 구성에서는 관리자가 의도한 상주 프로세스를 추적해야 합니다.
Squid는 -N 즉 데몬 모드를 피하는 방식과 --foreground 즉 자식이 끝날 때까지 부모를 유지하는 방식을 구분합니다. 빌드와 서비스 구성에 따라 고르세요. 패키지된 유닛은 대신 준비 알림이나 빌드별 다른 옵션을 쓸 수 있으므로, 사용자 지정할 때 그 모델을 유지하세요.
이제 저널을 Squid의 시작 메시지와 비교하세요. 구문 오류, 접근할 수 없는 런타임 디렉터리, 치명적인 초기화는 실제로 서비스를 멈추고 PID 파일을 지울 수 있습니다. 사라짐만으로는 그 종료를 잘못된 프로세스 추적으로 구분할 수 없습니다. 디렉터리 소유권을 거듭 바꾸지 말고 그 메시지가 뒷받침하는 원인을 고치세요.