sshfs монтируется при входе в систему с помощью systemd и размонтируется при последнем выходе из системы

Это не RO FS, поэтому он не указан как roв /proc/mount.

Input/output errorозначает либо то, что написано, ошибку чтения или записи, либо это означает, что система пытается получить доступ к несуществующему сектору (из-за какой-то ошибки в информации о том, сколько блоков должно присутствовать на диске ).

Если это происходит достаточно часто, чтобы гарантировать мониторинг для обнаружения ошибки, это происходит достаточно часто, чтобы найти и устранить причину, по которой это происходит.

1
01.01.2021, 16:39
1 ответ

В качестве непривилегированного пользователя невозможно использовать systemd, но есть более простые решения. Одним из возможных решений было бы следующее:

Если вы используете bash, добавьте следующее в конец вашего ~/.profile:

if [ $(ps aux|grep "sshfs sshfs_user"|wc -l) -eq 1 ]; then
    # Not mounted thus mount
    sshfs sshfs_user@sshfs_server:/remote_path $HOME/mount_point
fi

logout()
{
if [ $(ps aux|grep your_user|grep bash|wc -l) -eq 1 ]; then
    # Last shell thus umount
    umount $HOME/mount_point
    unset -f logout
    logout
fi
}

Это проверит, запущен ли уже sshfs вашим пользователем, и смонтирует удаленную папку документов с помощью sshfs только один раз.

Замените sshfs_user@sshfs_server:/remote_path $HOME/mount_pointсвоими данными. Также в этой строке if [ $(ps aux|grep your_user|grep bash|wc -l) -eq 1 ]; thenизмените вашего _пользователя на вашего пользователя bash.

При использовании другой оболочки измените.profile и bash на соответствующий. то есть для zsh измените bash на zsh и.profile на.bashrc.

Пояснение:

При первом входе в систему проверяется, смонтирован ли удаленный sshfs. Если нет, он установит его.

Мы создаем функцию для замены встроенной команды -в logout. Эта функция проверит, запущен ли только один процесс оболочки, и размонтирует удаленный fs. Затем отключите замену logout, чтобы избежать зацикливания.

0
18.03.2021, 22:39

Теги

Похожие вопросы