On Fri, Aug 18, 2006 at 05:56:46PM +0800, Rowel Atienza wrote:
> lsof <filename>
> 
> returns 0 if the filename is being written.

s/being written/open or being written/

# >/var/log/test

# lsof /var/log/test; echo $?
1

# perl -e 'open F, ">/var/log/test" or die $!; sleep 120;' &
[1] 19421

# lsof /var/log/test; echo $?
COMMAND   PID USER   FD   TYPE DEVICE SIZE NODE NAME
perl    19421 root    3w   REG    3,8    0 2577 /var/log/test
0

=-=-=-=-=-=
lsof returns 1 if the file descriptor is closed or if the file doesn't exist.

# >/var/log/test

# lsof /var/log/test; echo $?; echo; tail -1 /var/log/test
1

# perl -le 'open F, ">/var/log/test" or die $!; select F; $|++; (print $i++), 
sleep 1 while $i <= 10; close F' &
[1] 19631

# lsof /var/log/test; echo $?; echo; tail -1 /var/log/test
COMMAND   PID USER   FD   TYPE DEVICE SIZE NODE NAME
perl    19631 root    3w   REG    3,8   16 2577 /var/log/test
0

7

# lsof /var/log/test; echo $?; echo; tail -1 /var/log/test
[1]+  Done                    perl -le 'open F, ">/var/log/test" or die $!; 
select F; $|++; (print $i++), sleep 1 while $i <= 10; close F'
1

10

# lsof /nosuchfile &>/dev/null; echo $?
1

-- 
$_=q:; # SHERWIN #
70;72;69;6e;74;20;
27;4a;75;73;74;20;
61;6e;6f;74;68;65;
72;20;50;65;72;6c;
20;6e;6f;76;69;63;
65;27;:;;s=~?(..);
?=pack q$C$,hex$1;
;;;=egg;;;;eval;;;
_________________________________________________
Philippine Linux Users' Group (PLUG) Mailing List
[email protected] (#PLUG @ irc.free.net.ph)
Read the Guidelines: http://linux.org.ph/lists
Searchable Archives: http://archives.free.net.ph

Reply via email to