Squid の PID ファイルが現れてすぐ消える場合は、読み込まれたユニットの Type= を実際の実行ファイルと引数に照らして確認します。Type=simple のサービスは、起動したプロセスが主プロセスのまま残ることを前提にします。デーモン化してそのプロセスを終了させるコマンドは別の契約に従うため、systemd は完了とみなして残りのサービスプロセスを停止することがあります。

設定担当と目的
pid_filenameこのディレクティブを持つ版では、Squid がこのパスに PID を書き込みます
PIDFile=そのサービスモデルが必要とする場合、systemd はこのパスから PID を読み取ります

PIDFile= はファイルを作らず、デーモン化するコマンドをフォアグラウンドのプロセスに変えることもありません。フォークする構成では、サービスの種類、デーモンの挙動、パスの三者が一致している必要があります。フォアグラウンドの構成では、管理側が意図した常駐プロセスを追跡しなければなりません。

Squid は -N、つまりデーモンモードを避ける指定と、--foreground、つまり子プロセスが終わるまで親を保持する指定を区別します。ビルドとサービスの構成に応じて選びます。パッケージ化されたユニットは代わりに準備完了通知やビルド固有の他のオプションを使うことがあります。カスタマイズするときはそのモデルを保ってください。

次にジャーナルを Squid の起動メッセージ と比べます。構文エラー、到達できない実行時ディレクトリ、致命的な初期化は、実際にサービスを停止させ PID ファイルを削除することがあります。消えたことだけでは、その終了を誤ったプロセス追跡と区別できません。ディレクトリの所有者を何度も変えるのではなく、それらのメッセージが裏づける原因を直してください。

関連記事