‘fuser’ comes handy on Unix

unix_test

Memoir from quiet days at Rockhampton –

Ever faced a problem of an indefinite loop in a process that writes to a log file like mad? Worse still – you don’t know which process is writing to the file? Ok, even if you think life is simple and delete the file assuming disk space gets freed up?

I have felt a dog chasing its own tail while solving this problem in a production environment.

A simple ‘rm’ command may not necessarily free up disk space used by an ever growing file since the inode for the file [ which is a pointer to the disk ] may be still kept open by the process that is writing the data and disk space would not be freed.

Follow steps below

1)

fuser -f <filename>

would list process ids that are still accessing the file. These process ids must be killed.

2)

cp /dev/null > <filename>

would empty the file out and free up space. This reflects in inode as well!

Alternatively, on GNU Linux, simply

fuser <filename>

does the job equally well.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s