Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Date: Fri, 12 Nov 2004 12:56:03 -0500 From: Christopher Faylor To: cygwin AT cygwin DOT com Subject: Re: howto register process Message-ID: <20041112175603.GB28975@trixie.casa.cgf.cx> Reply-To: cygwin AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com References: <873bzfdyvh DOT fsf AT zlatenlist DOT homelinux DOT net> <87sm7fxeza DOT fsf AT zlatenlist DOT homelinux DOT net> <20041112154218 DOT GI26737 AT trixie DOT casa DOT cgf DOT cx> <874qjvezwn DOT fsf AT zlatenlist DOT homelinux DOT net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <874qjvezwn.fsf@zlatenlist.homelinux.net> User-Agent: Mutt/1.4.1i On Fri, Nov 12, 2004 at 07:32:40PM +0200, Kamen TOMOV wrote: >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. *Why* are you calling cygwin_winpid_to_pid on the pids? If you are getting the pid from the return value of fork they are cygwin pids. You don't call cygwin_winpid_to_pid on them. A normal cygwin program should not be using cygwin_winpid_to_pid. As Pierre points out in the next message, what you are describing seems normal for starting a service in certain scenarios but you still haven't explained why you think you need cygwin_winpid_to_pid. cgf -- 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/