Sponsored Content
Top Forums Programming Daemon...Zombie?? Please help me Post 71352 by Kacyndra on Tuesday 10th of May 2005 09:30:18 AM
Old 05-10-2005
last question... i promise. :)

Hi,
i understand what you say about the while(1), sleep(1), someone had actually told me to put it in on another forum(which wasn't that helpfull at all),
but my question is about the fork, when you said i need to fork in the begining, do you mean all the forking is done in the main(), and it just calls the function from there?(instead of forking in the List())
.... i was thinking of putting
for(;Smilie{ open directory, and do all the file stuff here}, but that isn't working either.
I'm sorry to bugg you with this... i think i'm just having problems with the logic here. like you said it goes into infinate sleep.... so i though an infinite loop would help. but is it in the wrong place?

thanks again
Tanya R.
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

zombie program

When you run a ps -ef and if the status is a Z (zombie) does that mean the same as not responding? (Like a windows machine). Also has anyone here heard of the program called 'top' (I've found it on our Solaris 7 machines) If you have you might be able to help me. I need to know if there is a... (8 Replies)
Discussion started by: merlin
8 Replies

2. UNIX for Advanced & Expert Users

Zombie process

I would like to create a zombie process so that I can test monitoring software functionality. Any techniques? (2 Replies)
Discussion started by: swhitney
2 Replies

3. UNIX for Advanced & Expert Users

zombie daemon process!!

My daemon process is the child of init and init has the responsibility to remove it, once it turns zombie. But I want to ask why the daemon process which is child of init turns zombie in the first place. What measures I have to take to avoid this? rish (1 Reply)
Discussion started by: rish2005
1 Replies

4. Shell Programming and Scripting

Zombie process

Hi I need help because I don't know if it is possible to add a find inside a cat. like I have a file with the pid of the process that use to became zombie. And I have the same pid stored in the var (pid1) now, I have no clue how to check if the the find finds the pid or even if it's... (2 Replies)
Discussion started by: ruben.rodrigues
2 Replies

5. Solaris

zombie process

dear friends, in an interview they asked me what is zombie process. how we can identifying these process.if can you kill all zombie process. (8 Replies)
Discussion started by: sijocg
8 Replies

6. AIX

zombie process

Is there an equivilant to the preap command in AIX that would allow me to get rid of a zombie process. I am new to AIX, moving over from Solaris and in the past I have been able to preap the pid on the defunct process to clean them up. I have looked around and the best I can see is that it may... (3 Replies)
Discussion started by: sboots
3 Replies

7. UNIX for Dummies Questions & Answers

what is zombie , how to kill it ,

Hello I try to googled it , but I dint get sufficient answer :( .. When I can see zombie running on server do they consume system resources or not ? I have read that is not good to kill them with signal 9 cause it might cause more troubles .. why is kill -9 so harmfull? thanks (2 Replies)
Discussion started by: kvok
2 Replies

8. UNIX for Advanced & Expert Users

Zombie process

What is the overhead associated with zombie process?Is it running out of process-ID?:confused: Since some information is stored in process table.. Thanks in Advance (4 Replies)
Discussion started by: jois
4 Replies

9. Red Hat

zombie

Hi, Linux redhat 5.5 top shows that i have 20 zombie process : Tasks: 357 total, 1 running, 336 sleeping, 0 stopped, 20 zombie Cpu(s): 0.2%us, 0.3%sy, 0.0%ni, 99.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 24949400k total, 2363052k used, 22586348k free, 227084k buffers... (1 Reply)
Discussion started by: yoavbe
1 Replies

10. Programming

Zombie in C

hello all, when we are creating a process by using fork, if the child process terminates before parent, the child process exists as zombie.. My doubt is when that child process terminates, how come that process exists further and show as a zombie process..can anyone help me to clear about this? (1 Reply)
Discussion started by: aarathy
1 Replies
prefork(3pm)						User Contributed Perl Documentation					      prefork(3pm)

NAME
prefork - Optimized module loading for forking or non-forking processes SYNOPSIS
In a module that normally delays module loading with require # Module Foo::Bar only uses This::That 25% of the time. # We want to preload in in forking scenarios (like mod_perl), but # we want to delay loading in non-forking scenarios (like CGI) use prefork 'This::That'; sub do_something { my $arg = shift; # Load the module at run-time as normal if ( $special_case ) { require This::That; This::That::blah(@_); } } # Register a module to be loaded before forking directly prefork::prefork('Module::Name'); In a script or module that is going to be forking. package Module::Forker; # Enable forking mode use prefork ':enable'; # Or call it directly prefork::enable(); In a third-party run-time loader package Runtime::Loader; use prefork (); prefork::notify( &load_everything ); ... sub load_everything { ... } 1; INTRODUCTION
The task of optimizing module loading in Perl tends to move in two different directions, depending on the context. In a procedural context, such as scripts and CGI-type situations, you can improve the load times and memory usage by loading a module at run-time, only once you are sure you will need it. In the other common load profile for perl applications, the application will start up and then fork off various worker processes. To take full advantage of memory copy-on-write features, the application should load as many modules as possible before forking to prevent them consuming memory in multiple worker processes. Unfortunately, the strategies used to optimise for these two load profiles are diametrically opposed. What improves a situation for one tends to make life worse for the other. DESCRIPTION
The "prefork" pragma is intended to allow module writers to optimise module loading for both scenarios with as little additional code as possible. prefork.pm is intended to serve as a central and optional marshalling point for state detection (are we running in compile-time or run-time mode) and to act as a relatively light-weight module loader. Loaders and Forkers "prefork" is intended to be used in two different ways. The first is by a module that wants to indicate that another module should be loaded before forking. This is known as a "Loader". The other is a script or module that will be initiating the forking. It will tell prefork.pm that it is either going to fork, or is about to fork, or for some other reason all modules previously mentioned by the Loaders should be loaded immediately. Usage as a Pragma A Loader can register a module to be loaded using the following use prefork 'My::Module'; The same thing can be done in such a way as to not require prefork being installed, but taking advantage of it if it is. eval "use prefork 'My::Module';"; A Forker can indicate that it will be forking with the following use prefork ':enable'; In any use of "prefork" as a pragma, you can only pass a single value as argument. Any additional arguments will be ignored. (This may throw an error in future versions). Compatbility with mod_perl and others Part of the design of "prefork", and its minimalistic nature, is that it is intended to work easily with existing modules, needing only small changes. For example, "prefork" itself will detect the $ENV{MOD_PERL} environment variable and automatically start in forking mode. prefork has support for integrating with third-party modules, such as Class::Autouse. The "notify" function allows these run-time loaders to register callbacks, to be called once prefork enters forking mode. The synopsis entry above describes adding support for prefork.pm as a dependency. To allow your third-party module loader without a dependency and only if it is installed use the following: eval { require prefork; } prefork::notify( &function ) unless $@; Using prefork.pm From the Loader side, it is fairly simple. prefork becomes a dependency for your module, and you use it as a pragma as documented above. For the Forker, you have two options. Use as a dependency or optional use. In the dependency case, you add prefork as a dependency and use it as a pragma with the ':enable' option. To add only optional support for prefork, without requiring it to be installed, you should wait until the moment just before you fork and then call "prefork::enable" directly ONLY if it is loaded. # Load modules if any use the prefork pragma. prefork::enable() if $INC{prefork.pm}; This will cause the modules to be loaded ONLY if there are any modules that need to be loaded. The main advantage of the dependency version is that you only need to enable the module once, and not before each fork. If you wish to have your own module leverage off the forking-detection that prefork provides, you can also do the following. use prefork; if ( $prefork::FORKING ) { # Complete some preparation task } Modules that are prefork-aware mod_perl/mod_perl2 Class::Autouse FUNCTIONS
prefork $module The 'prefork' function indicates that a module should be loaded before the process will fork. If already in forking mode the module will be loaded immediately. Otherwise it will be added to a queue to be loaded later if it recieves instructions that it is going to be forking. Returns true on success, or dies on error. enable The "enable" function indicates to the prefork module that the process is going to fork, possibly immediately. When called, prefork.pm will immediately load all outstanding modules, and will set a flag so that any further 'prefork' calls will load the module at that time. Returns true, dieing as normal is there is a problem loading a module. notify &function The "notify" function is used to integrate support for modules other than prefork.pm itself. A module loader calls the notify function, passing it a reference to a "CODE" reference (either anon or a function reference). "prefork" will store this CODE reference, and execute it immediately as soon as it knows it is in forking-mode, but after it loads its own modules. Callbacks are called in the order they are registered. Normally, this will happen as soon as the "enable" function is called. However, you should be aware that if prefork is already in preforking mode at the time that the notify function is called, prefork.pm will execute the function immediately. This means that any third party module loader should be fully loaded and initialised before the callback is provided to "notify". Returns true if the function is stored, or dies if not passed a "CODE" reference, or the callback is already set in the notify queue. TO DO
- Add checks for more pre-forking situations SUPPORT
Bugs should be always submitted via the CPAN bug tracker, located at <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=prefork> For other issues, or commercial enhancement or support, contact the author. AUTHOR
Adam Kennedy <adamk@cpan.org> COPYRIGHT
Thank you to Phase N Australia (http://phase-n.com/ <http://phase-n.com/>) for permitting the open sourcing and release of this distribution. Copyright 2004 - 2009 Adam Kennedy. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. perl v5.12.4 2009-07-21 prefork(3pm)
All times are GMT -4. The time now is 07:45 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy