[pca] hiding SOA data from "ps"

Martin Paul martin at par.univie.ac.at
Tue Dec 1 14:46:22 CET 2009


Dražen Kačar wrote:
> Martin Paul wrote:
>> I've found an elegant workaround now - if $WGETRC or ~/.wgetrc exists,  
>> pca copies it to a temporary wgetrc file (mode 600) and appends the  
>> "header" options for the SOA data. Before running wget, $WGETRC is set  
>> to point at this temporary file, which is immediately removed after wget  
>> completes.
> 
> You might have a race condition here. It can be worked around safely, but
> it's a pain.

You mean somebody modifying ~/.wgetrc between the copy to the tmp file 
and wget reading it on startup? I can accept that, I guess. The tmp file 
is prepared right before wget is spawned, not just once when pca starts. 
Plus, only the user, not a process, is writing ~/.wgetrc; even if I hit 
the race condition, the only effect is ignoring the changes to wgetrc 
for a single download.

> The simpler workaround is to set WGETRC to /dev/stdin and
> then just write existing .wgetrc and the additional options to wget's
> stdin.

I like that, and wget seems to accept /dev/stdin in WGETRC. It does away 
with the race condition *and* saves me from creating a temporary file, 
but ..

 > If that's simple enough in Perl.

.. when reading about bidirectional IPC communication with perl it seems 
as if there's no simple, standard and non-ugly solution.

Martin.



More information about the pca mailing list