Fork again...
Oscar Paniagua
opaniagu at yahoo.com.ar
Thu Feb 3 13:46:01 CET 2005
I think is better using threads than fork()function,
Is it very difficult to change? Maybe, using threads,
the code is more compact and clear.
Thanks a lot, I'm analysing the code before I use it,
for this reason I made questions.
--- Andreas Ericsson <ae at op5.se> escribió:
> michael at optusnet.com.au wrote:
> > Andreas Ericsson <ae at op5.se> writes:
> >
> >>Oscar Paniagua wrote:
> >>
> >>>I need to make the next question:
> >>>- For what in check.c you make two fork's:
> >>>/* fork a child process */
> >>> pid=fork();
> >>>/* fork again... */
> >>> pid=fork();
> >>
> >>So as to not create zombie processes in case
> something goes wrong with
> >>plugin execution. Otherwise an uninterruptable IO
> request could quite
> >>possibly hang the entire daemon.
> >>
> >
> >
> > That doesn't make much sense. How can an IO
> request in the
> > child affect the parent? The parent should be
> doing non-blocking
> > wait() requests to reap the child processes, which
> will clean up
> > any zombies as they appear.
> >
>
> The parent has to fork a process group leader first
> so it can reap the
> response from the right fork(). If it didn't fork
> twice it would lead to
> a race condition on linux, bsd and solaris when the
> child exits if other
> checks are being run simultaneously.
>
> > Right now the code is mildly awful.
>
> The indent program helps a great deal. It's a shame
> it can't handle
> Ethan's extra indentation of closing braces.
>
> > The parent does a fork()
> > following by a blocking wait(). the child does
> fork() and exit.
> > the grandchild does the check.
> >
> > The much better thing to do would be to just
> fork() and in the
> > main loop do a wait(WNOHANG) to clean up the
> children as they
> > exit.
> >
>
> No, the current procedure is considered best
> practice for executing
> commands. sshd does it the same way (actually it
> does fork(), setuid(),
> fork(), fork() setpgid() fork() system(), but that's
> because it has to
> drop privileges as well).
>
> > Nagios number one problem at the moment is the
> terrible scalability
> > and the penchant to make things much more
> expensive than they should
> > be doesn't help. :)
> >
>
> Nagios scales fairly well, although I agree on the
> expensiveness.
> However, while 2.0 is still in beta I feel it would
> be much more useful
> to make sure it is 100% stable before starting to
> experiment with
> speedups. We have a customer who gets a couple of
> (two usually)
> coredumps a week. I've hacked up a small script to
> restart nagios more
> or less instantly, but something isn't right and
> I've been unable to
> find the reason for it for the last 10 weeks.
>
> --
> Andreas Ericsson
> andreas.ericsson at op5.se
> OP5 AB www.op5.se
> Lead Developer
>
>
>
-------------------------------------------------------
> This SF.Net email is sponsored by: IntelliVIEW --
> Interactive Reporting
> Tool for open source databases. Create drag-&-drop
> reports. Save time
> by over 75%! Publish reports on the web. Export to
> DOC, XLS, RTF, etc.
> Download a FREE copy at
> http://www.intelliview.com/go/osdn_nl
> _______________________________________________
> Nagios-devel mailing list
> Nagios-devel at lists.sourceforge.net
>
https://lists.sourceforge.net/lists/listinfo/nagios-devel
>
=====
Best Regards/Saludos,
Oscar Martin Paniagua
___________________________________________________________
250MB gratis, Antivirus y Antispam
Correo Yahoo!, el mejor correo web del mundo
http://correo.yahoo.com.ar
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
More information about the Developers
mailing list