Hi folks.
There's a problem in the console detach code for pg_autovacuum.
"setsid()" is NOT sufficient. Specifically, you must disassociate the
control terminal (standard in, out and error) for it to be complete.
This causes any attempt to execute pg_autovacuum from the cron to hang the
cron processor, stalling it.
Find below a diff that fixes the problem and allows proper disassociation:
*** pg_autovacuum.c.old Fri Apr 1 21:13:22 2005
--- pg_autovacuum.c Fri Apr 1 20:55:41 2005
***************
*** 196,201 ****
--- 196,202 ----
daemonize(void)
{
pid_t pid;
+ int i;
pid = fork();
if (pid == (pid_t) -1)
***************
*** 219,224 ****
--- 220,230 ----
fflush(LOGOUTPUT);
_exit(1);
}
+ i = open(NULL_DEV, O_RDWR);
+ dup2(i, 0);
+ dup2(i, 1);
+ dup2(i, 2);
+ close(i);
#endif
}
--
--
Karl Denninger (karl@denninger.net) Internet Consultant & Kids Rights Activist
http://www.denninger.net My home on the net - links to everything I do!
http://scubaforum.org Your UNCENSORED place to talk about DIVING!
http://www.spamcuda.net SPAM FREE mailboxes - FREE FOR A LIMITED TIME!
http://genesis3.blogspot.com Musings Of A Sentient Mind