Подключить USB по файлу

Верхний ответ намекает на проблему, но проблема именно в том, что конфигурация по умолчанию в этой версии Debian — это конфигурация vim.tiny. Если вы загрузите конфигурацию vim.basic и будете использовать ее вместо нее, все будет работать как положено.

apt-get install vim

Затем убедитесь, что выбран vim.basic:

update-alternatives --config vi
0
25.01.2021, 10:32
1 ответ

Мне удалось найти удовлетворительное решение.

Вместо того, чтобы пытаться монтировать напрямую из udev, я создал новую службу, как было предложено в этом вопросе . В конечном итоге я остановился на этом правиле udev:

ACTION=="add",<Your device specifiers here>,ENV{SYSTEMD_WANTS}="log@$env{DEVPATH}.service"

В/etc/systemd/system:

добавлен следующий сервис.
[Service]
Type=oneshot
TimeoutStartSec=300
GuessMainPID=false
RemainAfterExit=yes
ExecStart=/bin/bash -c "/home/user/mount.sh %I"

И изменил мой скрипт на:

#!/bin/sh

LOGFILE="/home/user/mount.log"
MOUNTDIRECTORY="/media/mount_point"
DEVPATH=$1
BASENAME="$(basename $DEVPATH)"
DEVICE="/dev/$BASENAME"

if [ -z "$BASENAME" ]; then
  exit
fi

echo "" >> $LOGFILE
echo "New USB device detected at $DEVICE" >> $LOGFILE

if grep '$MOUNTDIRECTORY ' /proc/mounts; then
  # Already mounted
  echo "Mount directory already in use" >> $LOGFILE
  exit
fi

mount $DEVICE $MOUNTDIRECTORY -o umask=0000,gid=1000,uid=1000 >> $LOGFILE

if [ $? -eq 0 ]; then
    echo "$DEVICE mounted at $MOUNTDIRECTORY" >> $LOGFILE
    if [ -f $MOUNTDIRECTORY/log.ini ]; then
        echo "Log.ini found. Ready to log" >> $LOGFILE
        break
    elif [ -z "$(ls -A $MOUNTDIRECTORY)" ]; then
        echo "USB device empty. Creating log.ini" >> $LOGFILE
        touch $MOUNTDIRECTORY/log.ini
        break
    else
        echo "Log.ini not found. Unmounting" >> $LOGFILE
        umount $MOUNTDIRECTORY
    fi
else
    echo "Failed to mount $DEVICE at $MOUNTDIRECTORY" >> $LOGFILE
fi

echo "" >> $LOGFILE

Я до сих пор не понимаю причину моей первоначальной проблемы (файл log.ini, появляющийся в точке монтирования, а не на одном из смонтированных устройств ). Если у кого-то есть объяснение, мне было бы интересно.

0
18.03.2021, 22:35

Теги

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