We just had an issue, so I'm putting this here in case anyone else stumbles upon it. Note, this only happens in a specific OS setup and if an outdated kernel is used.
Some outdated kernels, such as OpenVZ 6 kernels prior to vzkernel-2.6.32-042stab134.7, cause certain services within CentOS 7.7 virtual machines and systemd-67.el7_7.1 to fail.
Updated systemd treats symlinks differently, so, in combination with the outdated kernel, systemd unit files with references to pid files within /var/run (which is a symlink to /run) fail to start.
Errors include "
Can't open PID file /var/run/spamd.pid (yet?) after start: Too many levels of symbolic links" in case of Spamassassin and others, sometimes not so obvious ones, for other services.
Commands that might help you diagnose the issue are:
Code:
uname -a
systemctl list-units --all
systemctl status fail2ban.service
systemctl status monit.service
systemctl status sshd.service
systemctl status spamassassin.service
systemctl status xinetd.service
The proper solution is to update the kernel. In case of OpenVZ 6, using a more recent, preferably latest vzkernel, should be fine.
For those that can't update the kernel for some reason, the workaround is to adjust the service file by overriding the relevant part, e.g. for Spamassassin:
Code:
systemctl edit spamassassin.service
enter the following content:
Code:
[Service]
PIDFile=/run/spamd.pid
Reload systemd and restart the service:
Code:
systemctl daemon-reload
systemctl restart spamassassin.service