On Tue, Feb 22, 2000 at 12:03:59AM +1100, James Wilkinson wrote:
| I am thinking the only way to get rid of zombies and d-states is to
| reboot... but this is UNIX, dammit! There must be a way to clean up a
| running system ;)
A process blocked on D state is waiting for disc traffic (normally a
very short wait, unless you're blocked on a down NFS filesystem).
Signals will probably not be processed until the blockage clears.
A zombie is the merest husk of a process. The process is dead, its
resources have been released, it consumes no CPU. It's just a slot in
the process table holding the process complete state (how it died, its
exit status etc) for the parent to pick up. Unless your process table
is nearly full this isn't a problem, though it is tacky and untidy.
If your netscape want started from some GUI interface, be aware that
several have lazy shell code underneath, for example saying
process &
instead of
( process & )
The former leaves "process" as a child of the invoking shell. The
latter makes it a child of a child. The the intermediate child
(the "( )") goes away, the grandchild ("process") will be inherited by
process 1 (init) whose sole purpose in life is to wait for orphaned
children and clean them up, thus leaving no zombies.
If you're going to fork a process you no longer have any interest in
(such as forking a web browser for the user) then it's better to do
this extra fork to make the browser a child of init rather than, say,
the window manager.
Cheers,
--
Cameron Simpson, DoD#743 [EMAIL PROTECTED] http://www.zip.com.au/~cs/
No free man shall ever be debarred the use of arms. The strongest reason for
the people to retain the right to keep and bear arms is, as a last resort, to
protect themselves against tyranny in government.
- Thomas Jefferson, Proposal Virginia Constitution, June 1776
--
SLUG - Sydney Linux Users Group Mailing List - http://www.slug.org.au
To unsubscribe send email to [EMAIL PROTECTED] with
unsubscribe in the text