Quantcast
Channel: myVesta
Viewing all articles
Browse latest Browse all 273

Bash • How to release deleted files held by a running process

$
0
0
When you delete a file that is still being accessed by a process, the file may remain on the disk until that process releases it. This often happens if a Bash session is holding onto the file via an open file descriptor. Below is a quick guide on how to identify and fix this issue:

1. Identify Open Files
Use the `lsof` command with a grep filter for deleted files, for example:

Code:

lsof | grep 'deleted'
or if you suspect that deleted files are inside the certain folder, for example /home, then:

Code:

lsof | grep 'deleted' | grep '/home'
In the sample output, you might see entries referencing files that are marked as `(deleted)`. This means the file was removed from the filesystem but is still actively held by a process.

2. Locate the Process
Each open file entry includes details such as the process name (e.g., `bash`), the process ID (PID), and the file path. In the example:

Code:

bash      22436    pollmann_m24    1w   REG                8,1   18751014     427679 /home/somefile... (deleted)
The `22436` is the PID of the process holding the deleted file.

3. Kill the Process
Once you have identified the process causing the issue, you can terminate it using the `kill` command:

Code:

kill 22436
Be aware that this may close an active session or stop a running script if it’s tied to that Bash process.

4. Confirm the File is Released
After killing the process, run `lsof` again to confirm there are no longer references to the deleted file. Once there are no open file descriptors referencing it, the file is fully released from the disk.

This quick fix ensures that deleted files don’t consume unnecessary space on your system. Always double-check before killing processes to avoid stopping important services or sessions.

Statistics: Posted by isscbta — Mon Mar 17, 2025 11:33 am



Viewing all articles
Browse latest Browse all 273

Trending Articles