On 06.01.23 20:02, Viktor Dukhovni wrote:
On Fri, Jan 06, 2023 at 01:45:48PM -0500, Wietse Venema wrote:
Most changes in main.cf require a reload to become effective but there
are some exceptions requiring a restart, e. g. a change of
inet_interfaces.
That is incorrect. If inet_interfaces is changed, then a "postfix
reload" (not restart) is required because the master daemon is a
long-running process.
The documentation of inet_interfaces says otherwise, my recollection is
that master(8) does not attempt to rebind inet sockets on "reload":
src/master/master_ent.c: /*
src/master/master_ent.c: * XXX We cannot change the inet_interfaces
setting for a running master
src/master/master_ent.c: * process. Listening sockets are inherited by
child processes so that
src/master/master_ent.c: * closing and reopening those sockets in the
master does not work.
src/master/master_ent.c: *
src/master/master_ent.c: * Another problem is that library routines still
cache results that are
src/master/master_ent.c: * based on the old inet_interfaces setting. It
is too much trouble to
src/master/master_ent.c: * recompute everything.
src/master/master_ent.c: *
src/master/master_ent.c: * In order to keep our data structures
consistent we ignore changes in
src/master/master_ent.c: * inet_interfaces settings, and issue a warning
instead.
src/master/master_ent.c: */
If one really wants to change the IP address and/or number of listen
endpoints, a restart is required.
This also matches the warnings in the logs. After a reload following a
change of inet_interfaces the logs contain the following warning:
-----------------------------------------------------------------------
postfix/master[58283]: reload -- version 3.5.17, configuration /etc/postfix
postfix/master[58283]: warning: service smtp: ignoring inet_interfaces
change
postfix/master[58283]: warning: to change inet_interfaces, stop and
start Postfix
-----------------------------------------------------------------------
Peter