Hi,

I have question regarding use of pthreads, forks and execve's which appears 
to not work very well :-) First let me explain the reasoning though

We have an app that launches a few other apps and keeps track of their 
status, resource consumption etc. If one of the apps crashes, it is restarted 
according to certain parameters.

The app uses pthreads, and it's method of (re)starting an application is 
forking and calling execve. 

It works fine for all-but-one other app, which core dumps when started this 
way (from the commandline it works fine) and the core only traces back to  
int main(int argc, char **argv). It uses both pthreads and -ldl for plugin 
handling. 

We have tried changing the linking order (i.e. -ldl -lpthread, -lpthread, 
-ldl, etc), and even execv'ing a shell script that starts a shell script that 
starts the app - result is the same, instant core without even running.

I can see who forks together with threads and execve's are a messy 
combination, and a better solution altogether to our approach is appreciated 
just as much as a way to make the current solution work :-)

We have tested both kernels 2.4.2 and 2.2.18. 

We have tried on different systems, different hardware and slightly different 
distributions (debian potato, unstable, etc).

To sum up: using a pthreaded app to launch another pthreaded app by means of 
forking and exec(ve)'ng makes the second app core immediately, (at entering 
main). What to do?

Kind regards, and thanks for any help
Dennis Noordsij
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to