Я пытался выполнить sshfs через ssh в одной команде.
Например, если я делаю:
$ ssh user@host
user@host$ sshfs host:/src /target
Все в порядке. Теперь, если я попробовал это в одной команде:
ssh -t "sshfs host:/src /target"
Но не смонтированная точка. При помощи sshfs параметра отладки кажется, что объем смонтирован и сразу размонтирован когда законченное соединение SSH.
Я также пытался выполнить sshfs в оболочке входа в систему, но результатом является то же при выходе из оболочки:
ssh -t "/bin/sh -l -c sshfs host:/src /target && /bin/sh"
Что случилось? Есть ли друг друга лучший способ?
Когда вы выходите из удаленной оболочки, все дочерние процессы, запущенные через эту оболочку, убиваются, потому что родитель (оболочка) убивается, когда вы выходите из оболочки.
Чтобы избежать этого вы можете использовать команду nohup
:
ssh -t "nohup sshfs host:/src /target"
Таким образом, после выхода из системы родитель процесса sshfs станет процессом с id 1, а монтировка останется неизменной
.Для автоматического монтирования файловой системы SSHFS, когда кто-то пытается получить доступ к этому пути, лучше использовать autofs.
.