Como desmontar um pendrive de um script que está no pendrive?

0

Como eu posso desmontar um usbstick diretamente do script que se mata.

Porque eu estou executando o script do stick não é possível apenas desmontá-lo porque há sempre o erro: dispositivo ou recurso ocupado. Então, qual é a maneira mais fácil: devo executar um script na máquina através do meu script antes que ele se mate?

Como posso conseguir isso?

    
por apuboard 01.12.2015 / 14:57

2 respostas

1

você não pode desmontar um sistema de arquivos se estiver usando-o.

você pode tentar

(echo fuser -ku /dev/xxx ; echo umount/dev/xxx ) |
at now +5 sec
exit
  • este pedaço de código não deve ser executado a partir do dispositivo usb, é claro.
  • símbolo de pipe ( | ) deve ser o último caractere da linha.
  • Suponho que você saiba o que usar no lugar de xxx.
por 01.12.2015 / 15:31
1

Execute o comando umount de um processo que não tenha nenhum arquivo aberto na unidade removível. Em particular, isso não deve ser um script de shell na unidade. Um script passado na linha de comando sh está bem. O script armazenado na unidade deve ter terminado; A maneira mais fácil é usar exec para substituir o shell que está executando o script pelo shell que está executando a sequência de desmontagem.

#!/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"
    
por 02.12.2015 / 01:46