On some Atmail mail servers I've experienced issues with orphaned exim processes which continued to run even after a stop or restart of exim (through the Atmail init script /etc/init.d/atmailserver). Some of the servers even had hundreds of exim processes just running without actually doing anything:
atmlsrv05: 4
atmlsrv10: 14
atmlsrv02: 155
atmlsrv08: 204
atmlsrv14: 505
atmlsrv15: 221
atmlsrv11: 267
atmlsrv03: 238
atmlsrv09: 205
atmlsrv13: 319
atmlsrv12: 220
atmlsrv06: 11
atmlsrv07: 339
atmlsrv01: 468
atmlsrv04: 317
Usually this shouldn't cause issues (except slight performance degradation) but I've seen one case where SMTP connections were refused when more than 1200 exim processes were hanging around.
The biggest issue however is not that there are these orphaned processes around, but rather that the atmailserver init script does not kill them correctly when a stop command was launched:
/etc/init.d/atmailserver stop
Stopping Atmail server: av-module imap pop3 smtp spamassassin log-daemon
ps aux | grep -c exim
436
I modified the atmailserver init script to check for remaining exim processes after the exim daemon was killed and kill them all.
Here's the patch:
*** /etc/init.d/atmailserver 2012-08-24 05:23:14.717582184 +0000
--- /tmp/atmailserver 2014-03-05 08:52:54.168978274 +0000
*************** stop)
*** 65,70 ****
--- 65,74 ----
echo -n " smtp"
kill -9 `cat /usr/local/atmail/mailserver/spool/exim-daemon.pid`
rm -f /usr/local/atmail/mailserver/spool/exim-daemon.pid
+
+ # were really all exim processes killed? seen orphaned procs in the past...
+ # 2014-03-05 Claudio Kuenzler
+ if [[ -n $(pgrep exim) ]]; then pkill -9 exim; fi
fi
if test -f /usr/local/atmail/spamassassin/spamd.pid
When I now launch /etc/init.d/atmailserver stop, all exim processes are correctly killed:
/etc/init.d/atmailserver stop
Stopping Atmail server: av-module imap pop3 smtp spamassassin log-daemon
ps aux | grep -c exim
1
The remaining (1) process is the "grep" command itself.
No comments yet.
AWS Android Ansible Apache Apple Atlassian BSD Backup Bash Bluecoat CMS Chef Cloud Coding Consul Containers CouchDB DB DNS Database Databases Docker ELK Elasticsearch Filebeat FreeBSD Galera Git GlusterFS Grafana Graphics HAProxy HTML Hacks Hardware Icinga Influx Internet Java KVM Kibana Kodi Kubernetes LVM LXC Linux Logstash Mac Macintosh Mail MariaDB Minio MongoDB Monitoring Multimedia MySQL NFS Nagios Network Nginx OSSEC OTRS Office OpenSearch PGSQL PHP Perl Personal PostgreSQL Postgres PowerDNS Proxmox Proxy Python Rancher Rant Redis Roundcube SSL Samba Seafile Security Shell SmartOS Solaris Surveillance Systemd TLS Tomcat Ubuntu Unix VMWare VMware Varnish Virtualization Windows Wireless Wordpress Wyse ZFS Zoneminder