There has recently been a (publicly unconfirmed) report that Skype is accessing files that it shouldn't be, without user intervention. I have no idea if this is the case with Skype on linux, but it would be good to be able to find out. Is there a way to keep track of all files accessed by a specific process?


Launch your process through strace:

strace -fe open skype

You will see the list of each open() syscall, that is every file (or connection) the processes opens during its life.

Looking at currently opened file descriptors will not provide a log but only a "snapshot" of what the process accesses right now.


Given the PID of the Skype process, you can do:

for fd in /proc/$skype_pid/fd/*;do
    echo -n "File descriptor $fd points to "
    readlink "$fd"

For a given process, /proc/$PID/fd contains symbolic links to all the files the process currently has open. The links are named after the file descriptor number. So, to find a out where a process is getting its stdin for example, you can readlink /proc/$pid_of_process/fd/0. The above will tell you about all files opened by the Skype process.

If you're not sure about the PID of your process, try

$ pgrep skype

first to find out.

This will only work on systems that have a procfs, of which GNU/Linux is one.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.