[BusyBox 0005954]: Cannot STOP "cleanly" the service PPPD.

bugs at busybox.net bugs at busybox.net
Mon Nov 3 22:49:36 UTC 2008


A NOTE has been added to this issue. 
====================================================================== 
http://busybox.net/bugs/view.php?id=5954 
====================================================================== 
Reported By:                Danny Gilbert
Assigned To:                BusyBox
====================================================================== 
Project:                    BusyBox
Issue ID:                   5954
Category:                   Networking Support
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     assigned
====================================================================== 
Date Submitted:             11-03-2008 12:54 PST
Last Modified:              11-03-2008 14:49 PST
====================================================================== 
Summary:                    Cannot STOP "cleanly" the service PPPD.
Description: 
I can use PPPD to communicate with my GPRS (cell phone) but I tried
anything to hangup (SIGHUP), terminate (SIGTERM) or kill (SIGKILL) the
PPPD when not used anymore. It stops but the process PPPD is a ZOMBIE
after all. Maybe I don't do the good thing about it. Can someone can try
it !

In my mean software, I do a fork and execute the PPPD. When my software
wants to close (stop), I ask the PPPD to hang up and shut itself. 

Is there SOMETHING special with PPPD on BUSYBOX or this is the SAME as
other Linux distribution ?

Thank you !
====================================================================== 

---------------------------------------------------------------------- 
 vda - 11-03-08 14:49  
---------------------------------------------------------------------- 
> kill (SIGKILL) the PPPD when not used anymore. It stops but the process
PPPD is a ZOMBIE after all.

Zombie is a dead process. You successfully killed it.

> In my mean software, I do a fork and execute the PPPD.

You must do one of the following in order to dispose of the zombies (your
dead children):
(1) wait() for dead pppd. if you do not know when it will die, install
SIGCHLD handler and kernel will tell you.
 -or-
(2) do signal(SIGCHLD, SIG_IGN). Kernel will know that you are not
interested in dying children.
 -or-
(3) exit yourself. When parent exits, children are reparented to init. It
will take care of wait()ing for them

> When my software wants to close (stop), I ask the PPPD to hang up and
shut itself.

The mere thought of software which runs pppd from C code directly (not via
helper scripts and the like) makes my nightmares much more vivid. :) 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
11-03-08 12:54  Danny Gilbert  New Issue                                    
11-03-08 12:54  Danny Gilbert  Status                   new => assigned     
11-03-08 12:54  Danny Gilbert  Assigned To               => BusyBox         
11-03-08 14:49  vda            Note Added: 0015034                          
======================================================================




More information about the busybox-cvs mailing list