Quem está usando um arquivo incluído?

1

Com o "fusor", posso ver qual processo está usando o arquivo. No entanto, qualquer arquivo incluído não é exibido com 'fusor'.

mainfile

#! /bin/bash
source subfile

SomethingInSubFile

sleep 60
exit 0

subarquivo

SomethingInSubFile(){
    echo "Just some text."
}

Quando eu inicio o 'mainfile', o seguinte resultado é gerado pelo 'fuser':

root@thisbox:/tmp# fuser mainfile
/tmp/mainfile:       25560
root@thisbox:/tmp# fuser subfile
<nothing>

Razão para perguntar: Na minha situação eu tenho muitos scripts bash com uma linha de 'subarquivo de origem'. Esses scripts estão sendo usados em vários sistemas. Eu construí um script de instalador automatizado que usa 'fusor' para ver se alguém está usando um arquivo. Em que o o script aguarda até que o arquivo seja liberado antes de substituí-lo com a versão mais recente. Infelizmente não consigo verificar se o 'subarquivo' está em uso.

    
por Ben 22.03.2016 / 14:56

1 resposta

0

Após essa função de origem sair, nada está usando o subarquivo. O script é executado no subshell gerado pelo script e o fornecimento de qualquer arquivo com definição de função atua como se essas funções fossem digitadas no subshell pelo teclado. Durante a execução da função do arquivo de origem, ela será usada pelo sub-shell muito brevemente.

Você pode adicionar a função sleep ao arquivo de origem para testar você mesmo

    
por Sergiy Kolodyazhnyy 22.03.2016 / 15:30