Starting mailman

After I installed Virtualmin GPL on CentOS 7, the host configuration check failed because mailman’s qrunner was not running.

Ideally, we need to add a service for systemd. But my very quick makeshift hack was to chmod /etc/rc.d/rc.local to +x and at the end of it add the following line:

( sleep 60 ; /usr/lib/mailman/bin/mailmanctl start ) &  

We need the sleep so mailmanctl won’t run until other things are up, otherwise it might not start qrunner. I think it needs networking to be up, and maybe some other things.

The trailing ampersand will put the line into the background and eliminate sixty seconds of boot-time console animations, if you’re monitoring the server’s console.

Mailman should really start itself as start of the server boot process as long as it’s set to start at boot. Did you try systemctl enable mailman ?

Let’s compare mailman with openssh on CentOS 7.2.1511 :

# rpm -q -l openssh-server | grep systemd /usr/lib/systemd/system/sshd-keygen.service /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd.socket /usr/lib/systemd/system/sshd@.service # rpm -q -l mailman | grep systemd # ` `

Whether or not systemctl enable will enable a program depends on how that program is packaged, because systemctl has no special knowledge of how to enable mailman, or any other program. The package itself is supposed to include the necessary files that it drops into one of the directories monitored by systemctl.

In this case, mailman as included with CentOS 7 has not been packaged to be startable by systemctl.

I’m not sure where you got your copy of mailman, but on our CentOS 7 systems:

sh-4.2# rpm -q -l mailman |grep systemd

and systemctl starts and stops mailman just fine.

sh-4.2# rpm -q -a |grep mailman

I am glad you posted this, because it means I don’t need that line in /etc/rc.d/rc.local any more.

I’ve re-imaged that VM since my previous posting, and today, I get the same output as you do.

Usually I do a yum update (or apt-get upgrade) after installing any OS. But after doing so, when I installed Virtualmin, it seemed to be broken in many different ways. So I considered the possibility that Virtualmin had not been tested with the most recent CentOS 7 after all updates. I then re-installed fresh CentOS 7, and installed Virtualmin without ever doing yum update, and I got somewhat better results with Virtualmin. Perhaps the version of mailman that I got, before I did yum update, didn’t have the hook for systemd.