Subject: Re: howto register process
From: Kamen TOMOV <[email-masked]>
To: [email-masked]
Date: 12 Nov 2004 19:32:40 +0200

On Fri, Nov 12 2004, Christopher Faylor wrote:

> On Fri, Nov 12, 2004 at 05:29:45PM +0200, Kamen TOMOV wrote:
>
> >That's a great idea. I'll stick with it and will rewrite the
> >application to start the daemons from the cygwin's shell. That
> >would make my life much easier because instead of rewriting the
> >cygwin's fork function to register processes in its own virtual
> >table (although I do not know if that is possible) they would be
> >instantly available. It was strange to me that fork do not make
> >them appear there but anyway... thank you very much!
> 
> I can't shake the feeling that we are dancing around a misconception
> here somewhere.
> 
> The bash shell doesn't do anything magical when it starts processes.
> If you are using cygwin's fork then you shouldn't be worrying about
> "windows pids".  If you are running a cygwin program which uses fork
> and exec then the processes that it creates are cygwin processes and
> you will be able to manipulate them using normal UNIX functions.
> 
> If you are calling cygwin_winpid_to_pid on a pid that you got from a
> fork(), or spawn*() call then that is not right.
> 
> cgf

It's for sure that there are some things that are not quite clear, but
in a nutshell:

We have a daemon compiled with cygwin's fork, kill, etc.

1st scenario: 

- the daemon gets started as a Windows service
- the daemon forks (calling the cygwin's version of fork()) and as a
result we have a few children.

The facts:

- neither the daemon, nor its children are seen by cygwins's ps.exe or
  could be killed with kill.exe, or kill().

- calling cygwin_winpid_to_pid on the parent's pid or any of its
  children's pid returns the error result: -1.

2nd scenario: 

- the daemon gets started from the bash's command line.

The facts:

- the daemon is seen in the list of processes given by ps.exe and
  could be killed with kill.exe.

Regards,
-- 
Kamen TOMOV

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/