Fusermount挂载SSHFS目录可以手动工作但不能自动工作?

Fusermount挂载SSHFS目录可以手动工作但不能自动工作?

我的工作站运行 Debian Jessie 和应该当用户登录到桌面时,自动通过 SSHFS 挂载远程目录。我们有一个位于用户工作站上的脚本来执行此操作:

#!/bin/bash
fusermount -u ~/remote-directory
sshfs -o reconnect remote@server:/home/shared ~/remote-directory

我已经尝试了我能想到的一切。我在 crontab @reboot 和 rc.local 中引用了 .sh 文件(在将波浪号更改为目录的直接路径之后),然后更改它以便运行命令本身。我已确保 .sh 和 rc.local 都是可执行的。

当我重新启动工作站时,该目录仍然不会自动挂载。检查系统日志,我收到以下错误:

rc.local[3140]: fusermount: failed to unmount /home/user/remote-directory: Invalid argument
systemd-udevd[1592]: Process '/bin/mount -t fusectl fusectl /sys/fs/fuse/connections' failed with exit code 32.

这让我相信 fusionrmount 命令中的 -u 开关有问题,但是当我登录后手动运行脚本时,它工作得很好。为什么不会呢只是工作如果手动工作的话会自动进行吗?

答案1

我遇到了同样的问题。经过多次谷歌搜索和尝试一切可能的方法后,我终于发现问题很奇怪但很简单——只需在安装 sshfs 后重新启动机器即可。重新启动后,fusermount 停止抱怨并且卸载按预期进行。

答案2

我发现了问题。我将 fusionrmount 脚本添加到 crontab 和 rc.local,它们在启动时运行该脚本。相反,我需要创建一个引用脚本的 .desktop 并将其添加到/etc/xdg/autostart- 这会在用户登录时运行脚本,通常是在所有必需的服务已启动并且用户凭据可用于验证 sshfs 之后。

相关内容