Обсуждение: Reloading pgbouncer and systemd
Hello,
While working with pgbouncer under CentOS7, I noticed an incompatibility
between pgbouncer and systemd when reloading.
The current reload command is:
  ExecReload=/usr/bin/pgbouncer -R -q ${BOUNCERCONF}
But this command create a new pgbouncer process...and keeps it in foreground.
As the service type is set as "forking", in this situation systemctl just sits
and wait for a return code (maybe there's a timeout, but I did not have the
patience to wait for it).
Either add a '-d' to this command, or send a HUP signal to the process.
I prefer the second option as it doesn't create a new process that takes over
the sockets, but just reloads the conf file as expected. Much lighter.
So, imho, the pgbouncer.service file should have:
  ExecReload=/bin/kill -HUP $MAINPID
Regards
--
Jehan-Guillaume de Rorthais
Dalibo
			
		Le Mon, 22 Feb 2016 17:38:45 +0100,
Jehan-Guillaume de Rorthais <jgdr@dalibo.com> a écrit :
> Hello,
>
> While working with pgbouncer under CentOS7, I noticed an incompatibility
> between pgbouncer and systemd when reloading.
>
> The current reload command is:
>
>   ExecReload=/usr/bin/pgbouncer -R -q ${BOUNCERCONF}
>
> But this command create a new pgbouncer process...and keeps it in foreground.
> As the service type is set as "forking", in this situation systemctl just sits
> and wait for a return code (maybe there's a timeout, but I did not have the
> patience to wait for it).
>
> Either add a '-d' to this command, or send a HUP signal to the process.
>
> I prefer the second option as it doesn't create a new process that takes over
> the sockets, but just reloads the conf file as expected. Much lighter.
>
> So, imho, the pgbouncer.service file should have:
>
>   ExecReload=/bin/kill -HUP $MAINPID
Any feedback on this ?
			
		Hi, Looks good to me. Can you please create a ticket for this, so that we can keep track? https://redmine.postgresql.org/projects/pgrpms/issues/new Cheers, Devrim On Mon, 2016-02-22 at 17:38 +0100, Jehan-Guillaume de Rorthais wrote: > Hello, > > While working with pgbouncer under CentOS7, I noticed an incompatibility > between pgbouncer and systemd when reloading. > > The current reload command is: > > ExecReload=/usr/bin/pgbouncer -R -q ${BOUNCERCONF} > > But this command create a new pgbouncer process...and keeps it in foreground. > As the service type is set as "forking", in this situation systemctl just > sits > and wait for a return code (maybe there's a timeout, but I did not have the > patience to wait for it). > > Either add a '-d' to this command, or send a HUP signal to the process. > > I prefer the second option as it doesn't create a new process that takes over > the sockets, but just reloads the conf file as expected. Much lighter. > > So, imho, the pgbouncer.service file should have: > > ExecReload=/bin/kill -HUP $MAINPID > > Regards > -- > Jehan-Guillaume de Rorthais > Dalibo > > -- Devrim GÜNDÜZ Principal Systems Engineer @ EnterpriseDB: http://www.enterprisedb.com PostgreSQL Danışmanı/Consultant, Red Hat Certified Engineer Twitter: @DevrimGunduz , @DevrimGunduzTR
Вложения
Le Wed, 30 Mar 2016 16:15:00 +0300, Devrim Gündüz <devrim@gunduz.org> a écrit : > Looks good to me. Can you please create a ticket for this, so that we can keep > track? Done: https://redmine.postgresql.org/issues/1042 Thank you Devrim! > On Mon, 2016-02-22 at 17:38 +0100, Jehan-Guillaume de Rorthais wrote: > > Hello, > > > > While working with pgbouncer under CentOS7, I noticed an incompatibility > > between pgbouncer and systemd when reloading. > > > > The current reload command is: > > > > ExecReload=/usr/bin/pgbouncer -R -q ${BOUNCERCONF} > > > > But this command create a new pgbouncer process...and keeps it in > > foreground. As the service type is set as "forking", in this situation > > systemctl just sits > > and wait for a return code (maybe there's a timeout, but I did not have the > > patience to wait for it). > > > > Either add a '-d' to this command, or send a HUP signal to the process. > > > > I prefer the second option as it doesn't create a new process that takes > > over the sockets, but just reloads the conf file as expected. Much lighter. > > > > So, imho, the pgbouncer.service file should have: > > > > ExecReload=/bin/kill -HUP $MAINPID