On Thu, Nov 17, 2016 at 3:00 PM, Corinna Vinschen <corinna-cyg...@cygwin.com> wrote: > On Nov 17 14:30, Erik Bray wrote: >> Hi all, >> >> For a quick bit of background, I'm working on porting the highly >> useful psutil [1] Python library to Cygwin. This has proved an >> interesting exercise, as much of the functionality of psutil works on >> Cygwin through existing POSIX interfaces, and a handful of >> Linux-specific interfaces as well. But there are some bits that >> simply don't map at all. >> >> The one I'm struggling with right now is retrieving Cygwin environment >> variables for a process (under inspection--i.e. not listing a >> process's environment from within that process which is obviously >> trivial). >> >> I've looked at every route I could conceive of but as far as I can >> tell this is currently impossible. That's fine for now--I simply >> disable that functionality in psutil. But it is unfortunate, though, >> since the information is there. >> >> There are a couple avenues I could see to this. The most "obvious" >> (to me) being to implement /proc/<pid>/environ. >> >> I would be willing to provide a patch for this if it would be >> accepted. Is there some particular non-obvious hurdle to this that it >> hasn't been implemented? Obviously there are security >> implications--the /proc/<pid>/environ should only be readable to the >> process's owner, but that is already within Cygwin's capabilities, and >> works for other /proc files. > > Patch welcome. Implementing this should be fairly straightforward. > The only hurdle is winsup/CONTRIBUTORS ;)
Thanks--I went to go work on this finally but it turns out not to be straightforward after all, as the process's environment is not shared in any way between processes. I could do this, if each process kept a copy of its environment block in shared memory, which would in turn have to be updated every time the process's environment is updated. But I don't know what the impact of that would be performance-wise. Any advice? Thanks, Erik -- 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