我尝试通过一个命令通过 ssh 运行 sshfs。
例如,如果我这样做:
$ ssh user@host
user@host$ sshfs host:/src /target
一切正常。现在,如果我用一个命令尝试一下:
ssh -t "sshfs host:/src /target"
但不是挂载点。通过使用 sshfs 调试选项,似乎卷已挂载,并在 ssh 连接结束时立即卸载。
我也尝试在登录 shell 中运行 sshfs,但退出 shell 时结果是一样的:
ssh -t "/bin/sh -l -c sshfs host:/src /target && /bin/sh"
怎么了?还有其他最佳方法吗?
答案1
当您退出远程 shell 时,通过该 shell 启动的所有子进程都将被终止,因为当您注销时父进程(shell)也会被终止。
为了避免这种情况,您可以使用nohup
命令:
ssh -t "nohup sshfs host:/src /target"
这样,在您注销后,您的 sshfs 进程的父进程将成为 id 为 1 的进程,并且您的挂载将保持运行。
答案2
当有人尝试访问该路径时,您应该使用 autofs 自动挂载 SSHFS 文件系统。