Clamav-freshclam cannot start due to missing PID directory

clamav-freshclam as in the current Manjaro ARM release cannot start because it tries to write its own PID in /var/run/clamav/freshclam.pid, but that directory isn’t automatically created.

logrotate currently relies on these PID files in /etc/logrotate.d/clamav so it’s not possible to just deactivate PID files, before updating the logrotate script to switch it to, e.g., systemctl reload instead.

/var/run is a symlink to /run - which is a volatle structure created at runtime.

Since the folder is populated at runtime - it points to a bug in the upstream source - as the app itself is reponsible for creating the pid file.

Furthermore it appears to be a common issue deducted from a search

https://sx.nix.dk/search?q=clamav%20pid%20file%20freshclam.pid

Nope - not a part of Manjaro - clamav exist but clamav-freshclam is not a package in Msnjaro repo - not even AUR.

If it is the clamav package you are referring to - I suggest you edit the config to place the pid file in e.g. /tmp which on Manjaro is on the volatile tmpfs or as /var/run/clam.pid.

According to the example config it is disabled by default - in that sense - not strictly required - thus your error is rooted in your configuration.

 $ clamconf --generate-config=freshclam.conf
[...]
# Save the process ID to a file.
# Default: disabled
#PidFile /var/run/clam.pid
[...]

As far as i know the command is only freshclam
It shows a warning about /run/clamav/clam.ctl but updates ok.