This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: Why require ps -W and kill -f


People don't care about implementation details.  They care about what is running on the system (the WHOLE system).  They want kill and ps to show what's running on the system, not what cygwin "thinks" is running.  Since exec() creates a new process on windows, that's more relevant for these tools.

You have to admit, ps -ef showing only a few processes out of a houndred is a serious handicap for these tools and any scripts trying to maintain compatibility across windows and unix/linux.  Also, the man page for -e (on unix/linux) says that -e means "every process on the system".

It will be more useful to show all windows processes, or if you want to be smart about it, all windows processes minus all the ones cygwin knows are the result of exec().  However, I think the exec() distinction doesn't really matter (certainly not to most people), since, how often will you really see it and how often will it really matter?  I don't see what's the big deal to allow ps and kill to see all windows processes by default.

How about let the user control how this works without having to change scripts or typing habits?  Can you add a new option via the CYGWIN environment variable, something like [no]allprocs which kill and ps can look at instead of -f and -W options (although you can keep those for compatibility with existing cygwin releases)?  Of course, I think the default behavior should be allprocs, since I believe almost all users will prefer this behavior.

-Don


-----Original Message-----
From: Andy Koppe [mailto:andy.koppe@gmail.com] 
Sent: Thursday, January 21, 2010 9:02 PM
To: don@beusee.com; cygwin@cygwin.com
Subject: Re: Why require ps -W and kill -f

2010/1/22 Don Beusee:
> ps -e on Unix displays ïevery process running on the systemï.ï This command
> doesn't do that under cygwin.ï Why should it be necessary to supply -W to
> see all processes running on the system?

Because those processes are not Cygwin/Unix processes. In particular,
they do not have Cygwin process IDs. Cygwin PIDs and Windows PIDs are
different concepts (even though they often coincide), and that's
because multiple windows processes can be needed to emulate one Cygwin
process. For example, when calling exec(), the new program is
conceptually executed in the same Cygwin process, but actually a new
Windows process has to be created since Windows doesn't allow a
process to change executable.

Andy


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]