mirror of
https://github.com/docker-mailserver/docker-mailserver.git
synced 2024-01-19 02:48:50 +00:00
1592698637
`postfix start-fg` was not properly responding to signals received to stop. This caused `supervisorctl restart postfix` and `supervisor stop postfix` to not work as expected (_stopping the Postfix master process, before attempting to start the service again_).
Supervisor does not support custom commands for restarting or stopping a service, relying only on managing the process via a signal. In the past we used a wrapper script to TRAP the signals and trigger commands that way.
However there is a feature which allows us to proxy signals to a different process by referencing a PID file. As Postfix master process creates a pid file when started, we can avoid a wrapper script and the `supervisorctl` functionality works as intended 👍
160 lines
4.7 KiB
Plaintext
160 lines
4.7 KiB
Plaintext
# each program entry below is a separate terminal command.
|
|
# Each command MUST run in the foreground and stay running.
|
|
# If the command ever exits, the supervisor daemon will automatically run it again.
|
|
# Programs can be controlled like this: 'supervisorctl start fail2ban' 'supervisorctl stop fail2ban'
|
|
# supervisor writes program statuses in /var/log/supervisor
|
|
|
|
[program:mailserver]
|
|
startsecs=0
|
|
stopwaitsecs=55
|
|
autostart=true
|
|
autorestart=false
|
|
stdout_logfile=/dev/stdout
|
|
stdout_logfile_maxbytes=0
|
|
stderr_logfile=/dev/stderr
|
|
stderr_logfile_maxbytes=0
|
|
command=/usr/local/bin/start-mailserver.sh
|
|
|
|
[program:cron]
|
|
startsecs=0
|
|
stopwaitsecs=55
|
|
autostart=false
|
|
autorestart=true
|
|
stdout_logfile=/var/log/supervisor/%(program_name)s.log
|
|
stderr_logfile=/var/log/supervisor/%(program_name)s.log
|
|
command=/usr/sbin/cron -f
|
|
|
|
[program:rsyslog]
|
|
startsecs=0
|
|
stopwaitsecs=55
|
|
autostart=false
|
|
autorestart=true
|
|
stdout_logfile=/var/log/supervisor/%(program_name)s.log
|
|
stderr_logfile=/var/log/supervisor/%(program_name)s.log
|
|
command=/usr/sbin/rsyslogd -n
|
|
|
|
[program:fail2ban]
|
|
startsecs=0
|
|
stopwaitsecs=55
|
|
autostart=false
|
|
autorestart=true
|
|
stdout_logfile=/var/log/supervisor/%(program_name)s.log
|
|
stderr_logfile=/var/log/supervisor/%(program_name)s.log
|
|
command=/usr/bin/fail2ban-server -xf start
|
|
|
|
[program:opendkim]
|
|
startsecs=0
|
|
stopwaitsecs=55
|
|
autostart=false
|
|
autorestart=true
|
|
stdout_logfile=/var/log/supervisor/%(program_name)s.log
|
|
stderr_logfile=/var/log/supervisor/%(program_name)s.log
|
|
command=/usr/sbin/opendkim -f
|
|
|
|
[program:opendmarc]
|
|
startsecs=0
|
|
stopwaitsecs=55
|
|
autostart=false
|
|
autorestart=true
|
|
stdout_logfile=/var/log/supervisor/%(program_name)s.log
|
|
stderr_logfile=/var/log/supervisor/%(program_name)s.log
|
|
command=/usr/sbin/opendmarc -f -p "inet:8893@localhost" -P /var/run/opendmarc/opendmarc.pid
|
|
|
|
[program:dovecot]
|
|
startsecs=0
|
|
stopwaitsecs=55
|
|
autostart=false
|
|
autorestart=true
|
|
stdout_logfile=/var/log/supervisor/%(program_name)s.log
|
|
stderr_logfile=/var/log/supervisor/%(program_name)s.log
|
|
command=/usr/sbin/dovecot -F -c /etc/dovecot/dovecot.conf
|
|
|
|
[program:clamav]
|
|
startsecs=0
|
|
stopwaitsecs=55
|
|
autostart=false
|
|
autorestart=true
|
|
stdout_logfile=/var/log/supervisor/%(program_name)s.log
|
|
stderr_logfile=/var/log/supervisor/%(program_name)s.log
|
|
command=/usr/sbin/clamd -c /etc/clamav/clamd.conf
|
|
|
|
[program:postgrey]
|
|
startsecs=0
|
|
stopwaitsecs=55
|
|
autostart=false
|
|
autorestart=true
|
|
stdout_logfile=/var/log/mail/mail.log
|
|
stderr_logfile=/var/log/mail/mail.log
|
|
command=/usr/sbin/postgrey --inet=127.0.0.1:10023 --syslog-facility=mail --delay="%(ENV_POSTGREY_DELAY)s" --max-age="%(ENV_POSTGREY_MAX_AGE)s" --auto-whitelist-clients="%(ENV_POSTGREY_AUTO_WHITELIST_CLIENTS)s" --greylist-text="%(ENV_POSTGREY_TEXT)s"
|
|
|
|
[program:amavis]
|
|
startsecs=0
|
|
stopwaitsecs=55
|
|
autostart=false
|
|
autorestart=true
|
|
stdout_logfile=/var/log/supervisor/%(program_name)s.log
|
|
stderr_logfile=/var/log/supervisor/%(program_name)s.log
|
|
command=/usr/sbin/amavisd-new foreground
|
|
|
|
[program:rspamd]
|
|
startsecs=0
|
|
stopwaitsecs=55
|
|
autostart=false
|
|
autorestart=true
|
|
stdout_logfile=/var/log/supervisor/%(program_name)s.log
|
|
stderr_logfile=/var/log/supervisor/%(program_name)s.log
|
|
command=/usr/bin/rspamd --no-fork --user=_rspamd --group=_rspamd
|
|
|
|
[program:redis]
|
|
startsecs=0
|
|
stopwaitsecs=55
|
|
autostart=false
|
|
autorestart=true
|
|
stdout_logfile=/var/log/supervisor/%(program_name)s.log
|
|
stderr_logfile=/var/log/supervisor/%(program_name)s.log
|
|
command=redis-server --daemonize no --bind 127.0.0.1 --port 6379 --loglevel warning
|
|
|
|
[program:fetchmail]
|
|
startsecs=0
|
|
stopwaitsecs=55
|
|
autostart=false
|
|
autorestart=true
|
|
stdout_logfile=/var/log/supervisor/%(program_name)s.log
|
|
stderr_logfile=/var/log/supervisor/%(program_name)s.log
|
|
user=fetchmail
|
|
command=/usr/bin/fetchmail -f /etc/fetchmailrc --nodetach --daemon "%(ENV_FETCHMAIL_POLL)s" -i /var/lib/fetchmail/.fetchmail-UIDL-cache --pidfile /var/run/fetchmail/fetchmail.pid
|
|
|
|
[program:postfix]
|
|
startsecs=0
|
|
stopwaitsecs=55
|
|
autostart=false
|
|
autorestart=true
|
|
stdout_logfile=/var/log/supervisor/%(program_name)s.log
|
|
stderr_logfile=/var/log/supervisor/%(program_name)s.log
|
|
command=/usr/bin/pidproxy /var/spool/postfix/pid/master.pid /usr/sbin/postfix start-fg
|
|
|
|
[program:changedetector]
|
|
startsecs=0
|
|
stopwaitsecs=55
|
|
autostart=false
|
|
stdout_logfile=/var/log/supervisor/%(program_name)s.log
|
|
stderr_logfile=/var/log/supervisor/%(program_name)s.log
|
|
command=/usr/local/bin/check-for-changes.sh
|
|
|
|
[program:postsrsd]
|
|
startsecs=0
|
|
stopwaitsecs=55
|
|
autostart=false
|
|
autorestart=true
|
|
stdout_logfile=/var/log/supervisor/%(program_name)s.log
|
|
stderr_logfile=/var/log/supervisor/%(program_name)s.log
|
|
command=/usr/local/bin/postsrsd-wrapper.sh
|
|
|
|
[program:update-check]
|
|
startsecs=0
|
|
stopwaitsecs=55
|
|
autostart=false
|
|
stdout_logfile=/var/log/supervisor/%(program_name)s.log
|
|
stderr_logfile=/var/log/supervisor/%(program_name)s.log
|
|
command=/bin/bash -l -c /usr/local/bin/update-check.sh
|