30

My coworker has a desktop computer with /home shared on our file server. I have developed a Perl script for sshfs-mounting a certain directory on another SSH host which works fine on my laptop.

On his computer the script fails to dismount the sshfs at the end and leaves the mountpoint unclean. I didn't find any way to recover the mountpoint other than rebooting. After some testing I found that the difference between our setups is that his /home is on NFS. In his /tmp it works flawlessly.

After mount, during script operation everything is fine. But when killing the sshfs process it is listed as <defunc> by ps until the parent process (the Perl script) exits. When running a raw sshfs command on the shell the problem still occurs.

A ls -dl output for the mountpoint looks like this (as remembered - I have no real copy of the shell output at hand):

? 1 ? ? 4096 Feb  9 15:37 file_archive/

(only question marks for most information, at least all permission details)

The sshfs mount is still listed by mount but an unmount operation fails with error permission denied even when doing as root.

I searched Google but only found lots of comparisons between sshfs and NFS for running network filesystems. How can I do a sshfs mount/unmount in NFS directory safely?

Gareth
  • 19,080

5 Answers5

49

You should be able to unmount the sshfs share by executing:

 fusermount -u /path/to/sshfs/share
CJ Travis
  • 1,077
18

Just kill the process using pkill to and then un mount the mounted folder path.

 pkill -kill -f "sshfs" && umount /path/to/sshfs/share
SAGAR
  • 197
4

This post is rather old. Currently on RHEL8, this is all that is required. There is no need to kill sshfs processes:

sudo umount <mountpoint>

0

This answer refers to Ubuntu 20.04, but in general you need two steps to properly unmount a sshfs volume: i) kill the sshfs process and ii) use sudo to unmount. Without using sudo, the system reports messages like "Device or resource busy" or "Transport endpoint is not connected", even if permissions are correct.

The instructions look like:

killall sshfs
sudo umount -l /path/to/sshfs/share
-2
sudo diskutil umount force ~/mount/

Seems like this command works in OS X.