Как отключить USB-флешку от скрипта, который находится на USB-флешке?

0

Как я могу размонтировать usbstick прямо из скрипта, который убивает себя.

Поскольку я запускаю скрипт с флешки, невозможно просто размонтировать его, потому что всегда есть ошибка: устройство или ресурс заняты. Итак, какой самый простой способ: я должен выполнить сценарий на компьютере через мой сценарий прямо перед тем, как он убьет себя?

Как я могу сделать это?

apuboard
источник
Вам нужно запустить скрипт на диске или достаточно запустить его с диска? Есть ли какая-либо причина иметь открытый сеанс оболочки для доступа к файлам или каталогам на диске?
Тердон

Ответы:

1

Вы не можете размонтировать файловую систему, если используете ее.

ты можешь попробовать

(echo fuser -ku /dev/xxx ; echo umount/dev/xxx ) |
at now +5 sec
exit
  • этот кусок кода не может быть запущен с USB-устройства, конечно.
  • Символ трубы ( |) должен быть последним символом строки.
  • Я полагаю, вы знаете, что использовать вместо ххх.
Archemar
источник
1

Запустите umountкоманду из процесса, у которого нет файла, открытого на съемном диске. В частности, это не должен быть сценарий оболочки на диске. Сценарий, переданный в shкомандной строке, в порядке. Сценарий, сохраненный на диске, должен быть прерван; Самый простой способ - execзаменить оболочку, на которой выполняется скрипт, на оболочку, выполняющую последовательность размонтирования.

#!/bin/sh
mount_point=$(df -P "$0" | awk 'NR==2 {print $6}')
 # do stuff involving the files on the drive
exec sh -c 'cd /; umount "$0"' "$mount_point"
жилль
источник