/ var / log montado como um tmpfs falha ao obter umount no FreeBSD

0

Eu tenho /var/log montado como um tmpfs, onde os arquivos de log são sincronizados periodicamente no disco pelo cron no FreeBSD. O processo é feito pelo script rc .

Estou montando como:

mount -t tmpfs -o nosuid,noexec,mode=0755,size=100M log /var/log

Agora o problema é - desmontá-lo. Não consegue desmontar, porque (r)syslog grava no arquivo. Isso é mostrado por lsof:

 lsof /var/log/
lsof: WARNING: compiled for FreeBSD release 11.1-RELEASE-p6; this is 11.1-RELEASE.
COMMAND    PID USER   FD   TYPE         DEVICE SIZE/OFF NODE NAME
rsyslogd 85515 root    2w  VREG 255,2264924190      210   13 /var/log/security
rsyslogd 85515 root    4w  VREG 255,2264924190      210    3 /var/log/auth.log
rsyslogd 85515 root    5w  VREG 255,2264924190     2292    7 /var/log/kern.notice
rsyslogd 85515 root    6w  VREG 255,2264924190     2292   11 /var/log/messages
rsyslogd 85515 root    7w  VREG 255,2264924190     2292    5 /var/log/debug.log

Portanto, para desmontá-lo, primeiro tenho que parar o daemon syslog. No entanto, estou procurando uma solução mais agradável, já que essas ações são gerenciadas por um script sh rc em si.

No Linux / GNU Os's umount tem um argumento muito útil: --lazy detach the filesystem now, clean up things later

, que, pelo meu conhecimento, espera que um processo ativo pare o sistema de arquivos, e o então processa com a desmontagem, o que resultaria em sucesso e não quebraria o script.

Então, como uma solução alternativa para isso, como posso parar a gravação temporária do syslog em / var / log? Eu tentei emitir STOP , tentando desmontar e CONT sinal, mas sem efeito.

Lsof ainda relata que existem FD que estão abertos para escrita. Observe que preciso de uma solução que possa ser aplicada a partir do script sh .

Obrigado!

EDITAR

O umount tem --force argumento, que em circunstâncias normais eu evitaria a qualquer custo. Mas como esse é um tmpfs e é executado a partir de um dispositivo de memória que não bloqueia, acredito que não causará nenhum dano.

Alguns testes mostraram que não há problemas. Eu fiz isso criando arquivos fictícios no tmpfs com dd , verifiquei suas somas, sincronizei com o hdd e, em seguida, forcei o desmembramento. Os hashes correspondem, o que significa que os arquivos não foram corrompidos.

Bem, isso é meio que uma solução suja, mas não tenho conhecimento de outras soluções. Se alguém tiver algumas desvantagens contra este método no ram fs, por favor me avise.

ps: kudos para @ layer8problem para conselhos: -)

    
por fugitive 24.01.2018 / 15:12

0 respostas