Hello,

I've encountered a similar problem : upgrading a Debian Stretch system with Squid package installed to Debian Buster version, the Squid service (in version 4.6-1+deb10u) doesn't start anymore at boot !

My system has a separate partition for /var, and Squid fails to start because it tries to access to /var/log/squid/ directory.

I've modified the Squid.service SystemD definition with following patch :


$ diff  -u /lib/systemd/system/squid.service /etc/systemd/system/squid.service
--- /lib/systemd/system/squid.service   2019-02-19 06:29:20.000000000 +0100
+++ /etc/systemd/system/squid.service   2019-09-06 11:22:00.385894559 +0200
@@ -8,7 +8,8 @@
 [Unit]
 Description=Squid Web Proxy Server
 Documentation=man:squid(8)
-After=network.target network-online.target nss-lookup.target
+Requires=var.mount network.target network-online.target nss-lookup.target
+After=   var.mount network.target network-online.target nss-lookup.target

 [Service]
 Type=forking


Because the SystemD documentation (in systemd.unit(5) indeed indicates that a Requires= should be added and is independant from After= definitions. I've first tried to add 'local-fs.target', then adding more specifically 'var.mount' dependency, but without success : SystemD is always starting Squid too early !?

Looking at SystemD journal at boot, I can see :

# journalctl -b -u squid.service -u var.mount

-- Logs begin at Thu 2019-09-19 09:35:18 CEST, end at Thu 2019-09-19 09:38:36 CEST. -- sept. 19 09:35:18 Deve2m squid[406]: WARNING: Cannot write log file: /var/log/squid/cache.log                                      ^-- Squid starts here, but var.mount isn't even launched ! sept. 19 09:35:18 Deve2m squid[406]: /var/log/squid/cache.log: No such file or directory sept. 19 09:35:18 Deve2m squid[406]:          messages will be sent to 'stderr'. sept. 19 09:35:18 Deve2m squid[406]: 2019/09/19 09:35:18| Created PID file (/var/run/squid.pid)
sept. 19 09:35:18 Deve2m squid[406]: Squid Parent: will start 1 kids
sept. 19 09:35:18 Deve2m squid[406]: Squid Parent: (squid-1) process 467 started sept. 19 09:35:18 Deve2m squid[406]: WARNING: Cannot write log file: /var/log/squid/cache.log sept. 19 09:35:18 Deve2m squid[406]: /var/log/squid/cache.log: No such file or directory sept. 19 09:35:18 Deve2m squid[406]:          messages will be sent to 'stderr'. sept. 19 09:35:18 Deve2m squid[406]: 2019/09/19 09:35:18 kid1| ERROR: cannot change current directory to /var/spool/squid: (2) No such file or directory sept. 19 09:35:18 Deve2m squid[406]: 2019/09/19 09:35:18 kid1| Current Directory is / sept. 19 09:35:18 Deve2m squid[406]: 2019/09/19 09:35:18 kid1| Creating missing swap directories sept. 19 09:35:18 Deve2m squid[406]: 2019/09/19 09:35:18 kid1| No cache_dir stores are configured. sept. 19 09:35:18 Deve2m squid[406]: Squid Parent: squid-1 process 467 exited with status 0 sept. 19 09:35:18 Deve2m squid[406]: 2019/09/19 09:35:18| Removing PID file (/var/run/squid.pid) sept. 19 09:35:18 Deve2m squid[525]: WARNING: Cannot write log file: /var/log/squid/cache.log sept. 19 09:35:18 Deve2m squid[525]: /var/log/squid/cache.log: No such file or directory sept. 19 09:35:18 Deve2m squid[525]:          messages will be sent to 'stderr'. sept. 19 09:35:18 Deve2m systemd[1]: squid.service: Can't open PID file /run/squid.pid (yet?) after start: No such file or directory
sept. 19 09:35:18 Deve2m squid[536]: Created PID file (/var/run/squid.pid)
sept. 19 09:35:18 Deve2m squid[536]: Squid Parent: will start 1 kids
sept. 19 09:35:18 Deve2m squid[536]: Squid Parent: (squid-1) process 561 started sept. 19 09:35:18 Deve2m squid[561]: ERROR: cannot change current directory to /var/spool/squid: (2) No such file or directory
sept. 19 09:35:18 Deve2m squid[561]: Current Directory is /
sept. 19 09:35:18 Deve2m squid[561]: Starting Squid Cache version 4.6 for x86_64-pc-linux-gnu...
sept. 19 09:35:18 Deve2m squid[561]: Service Name: squid
sept. 19 09:35:18 Deve2m squid[561]: Process ID 561
sept. 19 09:35:18 Deve2m squid[561]: Process Roles: worker
sept. 19 09:35:18 Deve2m squid[561]: With 1024 file descriptors available
sept. 19 09:35:18 Deve2m squid[561]: Initializing IP Cache...
sept. 19 09:35:18 Deve2m squid[561]: DNS Socket created at [::], FD 6
sept. 19 09:35:18 Deve2m squid[561]: DNS Socket created at 0.0.0.0, FD 7
sept. 19 09:35:18 Deve2m squid[561]: Warning: Could not find any nameservers. Trying to use localhost
sept. 19 09:35:18 Deve2m squid[561]: Please check your /etc/resolv.conf file
sept. 19 09:35:18 Deve2m squid[561]: or use the 'dns_nameservers' option in squid.conf. sept. 19 09:35:19 Deve2m squid[561]: Logfile: opening log daemon:/var/log/squid/access.log sept. 19 09:35:19 Deve2m squid[561]: Local cache digest enabled; rebuild/rewrite every 3600/3600 sec
sept. 19 09:35:19 Deve2m squid[561]: Store logging disabled
sept. 19 09:35:19 Deve2m squid[561]: Swap maxSize 0 + 262144 KB, estimated 20164 objects
sept. 19 09:35:19 Deve2m squid[561]: Target number of buckets: 1008
sept. 19 09:35:19 Deve2m squid[561]: Using 8192 Store buckets
sept. 19 09:35:19 Deve2m squid[561]: Max Mem  size: 262144 KB
sept. 19 09:35:19 Deve2m squid[561]: Max Swap size: 0 KB
sept. 19 09:35:19 Deve2m squid[561]: Using Least Load store dir selection
sept. 19 09:35:19 Deve2m squid[561]: ERROR: cannot change current directory to /var/spool/squid: (2) No such file or directory
sept. 19 09:35:19 Deve2m squid[561]: Current Directory is /
sept. 19 09:35:19 Deve2m squid[561]: Finished loading MIME types and icons.
sept. 19 09:35:19 Deve2m squid[561]: HTCP Disabled.
sept. 19 09:35:19 Deve2m squid[561]: Pinger socket opened on FD 12
sept. 19 09:35:19 Deve2m squid[561]: Squid plugin modules loaded: 0
sept. 19 09:35:19 Deve2m squid[561]: Adaptation support is off.
sept. 19 09:35:19 Deve2m squid[561]: Accepting HTTP Socket connections at local=[::]:3128 remote=[::] FD 10 flags=9 sept. 19 09:35:19 Deve2m systemd[1]: var.mount: Directory /var to mount over is not empty, mounting anyway.
                                     ^-- var.mount starts here...
sept. 19 09:35:19 Deve2m systemd[1]: Mounting /var...
sept. 19 09:35:19 Deve2m systemd[1]: Mounted /var.
sept. 19 09:35:19 Deve2m systemd[1]: squid.service: Unit cannot be reloaded because it is inactive. sept. 19 09:35:20 Deve2m squid[561]: logfileHandleWrite: daemon:/var/log/squid/access.log: error writing ((32) Broken pipe)
sept. 19 09:35:20 Deve2m squid[561]: Closing HTTP(S) port [::]:3128
sept. 19 09:35:20 Deve2m squid[561]: storeDirWriteCleanLogs: Starting...
sept. 19 09:35:20 Deve2m squid[561]:   Finished.  Wrote 0 entries.
sept. 19 09:35:20 Deve2m squid[561]:   Took 0.00 seconds (  0.00 entries/sec).
sept. 19 09:35:20 Deve2m squid[561]: FATAL: I don't handle this error well!
sept. 19 09:35:20 Deve2m squid[561]: Squid Cache (Version 4.6): Terminated abnormally.
sept. 19 09:35:20 Deve2m squid[561]: Closing Pinger socket on FD 12
sept. 19 09:35:20 Deve2m squid[536]: Squid Parent: squid-1 process 561 exited with status 1 sept. 19 09:35:20 Deve2m squid[536]: Squid Parent: (squid-1) process 1090 started sept. 19 09:35:20 Deve2m squid[1090]: Set Current Directory to /var/spool/squid sept. 19 09:35:20 Deve2m squid[1090]: Starting Squid Cache version 4.6 for x86_64-pc-linux-gnu...
sept. 19 09:35:20 Deve2m squid[1090]: Service Name: squid
sept. 19 09:35:20 Deve2m squid[1090]: Process ID 1090
sept. 19 09:35:20 Deve2m squid[1090]: Process Roles: worker
sept. 19 09:35:20 Deve2m squid[1090]: With 1024 file descriptors available
sept. 19 09:35:20 Deve2m squid[1090]: Initializing IP Cache...
sept. 19 09:35:20 Deve2m squid[1090]: DNS Socket created at [::], FD 4
sept. 19 09:35:20 Deve2m squid[1090]: DNS Socket created at 0.0.0.0, FD 8
sept. 19 09:35:20 Deve2m squid[1090]: Adding nameserver 10.92.131.240 from /etc/resolv.conf sept. 19 09:35:20 Deve2m squid[1090]: Adding nameserver 10.92.131.225 from /etc/resolv.conf sept. 19 09:35:20 Deve2m squid[1090]: Adding domain prosodie from /etc/resolv.conf sept. 19 09:35:20 Deve2m squid[1090]: Logfile: opening log daemon:/var/log/squid/access.log sept. 19 09:35:20 Deve2m squid[1090]: Logfile Daemon: opening log /var/log/squid/access.log sept. 19 09:35:20 Deve2m squid[1090]: Local cache digest enabled; rebuild/rewrite every 3600/3600 sec
sept. 19 09:35:20 Deve2m squid[1090]: Store logging disabled
sept. 19 09:35:20 Deve2m squid[1090]: Swap maxSize 0 + 262144 KB, estimated 20164 objects
sept. 19 09:35:20 Deve2m squid[1090]: Target number of buckets: 1008
sept. 19 09:35:20 Deve2m squid[1090]: Using 8192 Store buckets
sept. 19 09:35:20 Deve2m squid[1090]: Max Mem  size: 262144 KB
sept. 19 09:35:20 Deve2m squid[1090]: Max Swap size: 0 KB
sept. 19 09:35:20 Deve2m squid[1090]: Using Least Load store dir selection
sept. 19 09:35:20 Deve2m squid[1090]: Set Current Directory to /var/spool/squid
sept. 19 09:35:20 Deve2m squid[1090]: Finished loading MIME types and icons.
sept. 19 09:35:20 Deve2m squid[1090]: HTCP Disabled.
sept. 19 09:35:20 Deve2m squid[1090]: Pinger socket opened on FD 13
sept. 19 09:35:20 Deve2m squid[1090]: Squid plugin modules loaded: 0
sept. 19 09:35:20 Deve2m squid[1090]: Adaptation support is off.
sept. 19 09:35:20 Deve2m squid[1090]: Accepting HTTP Socket connections at local=[::]:3128 remote=[::] FD 11 flags=9 sept. 19 09:35:20 Deve2m systemd[1]: squid.service: Unit cannot be reloaded because it is inactive.
sept. 19 09:35:21 Deve2m squid[1090]: storeLateRelease: released 0 objects
sept. 19 09:36:48 Deve2m systemd[1]: squid.service: Start operation timed out. Terminating. sept. 19 09:36:48 Deve2m systemd[1]: squid.service: Killing process 536 (squid) with signal SIGKILL. sept. 19 09:36:48 Deve2m systemd[1]: squid.service: Killing process 1090 (squid) with signal SIGKILL. sept. 19 09:36:48 Deve2m systemd[1]: squid.service: Killing process 1131 (log_file_daemon) with signal SIGKILL. sept. 19 09:36:48 Deve2m systemd[1]: squid.service: Killing process 1143 (pinger) with signal SIGKILL. sept. 19 09:36:49 Deve2m systemd[1]: squid.service: Failed with result 'timeout'.

SystemD's commands shows than Squid service actually depends on var.mount service, but SystemD although starts Squid.service *before* var.mount service is up, I don't understand why !? Therefore, it seems it's the same problem with DNS access, managed through nss-lookup.target, Squid service starts also before dnsmasq is up and running.

    Thanks for your help,

        Fred.

Reply via email to