The problem might be related to a monit reload race condition [1] which was fixed in Monit 5.27.1.
1. https://bitbucket.org/tildeslash/monit/issues/928 > On 28 Oct 2020, at 01:17, Kannamraju P <[email protected]> wrote: > > Hi All, > I am running into a race condition , when I try to dynamically update > monitrc externally while MONIT is running , here is my use case > > 1. MONIT setup in daemon mode with 5 sec polling timeout . It has a set of > static services defined in the default MONITRC file. > 2. Default Monitrc includes one more custom config file ex: monitrc_custom > file > ."include /etc/monitrc_custom" > > a) In this custom monitrc file , services get added and deleted > dynamically by an external process > b) Any updation to monitrc is followed by monit reload, so that MONIT > picks up the updated service details > > With this setup I am observing that when both external service and monit > try to access the custom monitrc file , MONIT is getting stuck . > It becomes non responsive and "Monit summary" results in all processes stuck > in initializing state . > > ex: > > > > > Is there a way I can apply some locking mechanism to avoid the contention of > both external processes and monit accessing > config files at same time ? > > > -- > thanks & Regards, > Raju
