sshfs device is busy

Some program is using a file in the filesystem you're trying to unmount. It could be a file opened for reading or writing, a current directory, or a few more obscure cases. It could even be due to a directory on the filesystem being a mount point.

To investigate, run lsof +f -- example. It will tell what the process(es) are using the filesystem. Make your own judgement as to whether to make them close files, kill them, or defer the unmount operation.


I think you want a lazy unmount:

sudo umount -l example

I just had this problem and could not kill -9 the process reading from the mounted filesystem. kill -9 did not work even after fusermount -zu /mount/point or umount -l /mount/point (which worked). The only thing that worked was pkill -9 sshfs.


Running Ubuntu, man fusermount tells about a -z option, which is documented as “lazy unmount”. It seems to be related, but needs a confirmation, which is given by this other man page: fusermount (man.he.net), which says “lazy unmount (works even if resource is still busy)”. One must use it with the -u, the -z option alone, will produce an error. I tried the -z option, and can confirm it do the trick, but this precisely too much looks like a trick: what does it do exactly? Make it be unmounted automatically as soon as the directory is not busy any‑more? I don't know, not documented, so unsafe.

So here is another option, more verbose, but safer: tries to unmount until it successes, as many time as needed, in a loop.

echo -n "Unmounting...";
fusermount -u -q "$MOUNT_POINT";
OK="$?";

while [ "$OK" != "0" ]
do
   sleep 1;
   echo -n ".";
   fusermount -u -q "$MOUNT_POINT";
   OK="$?";
done

echo;

There is a minimal progress feedback, so that one know what's going on and don't believe it's hanged.

This option is acceptable from a shell script; for command line interaction, the use of the -z option is more handy, but one must probably be aware the man page does not document it and there may be doubt about what it exactly do.