Para mim isso não parece ser o caminho certo para conseguir isso. Eu acho que você quer direcionar o processo final [es] lendo o arquivo em vez do próprio arquivo. Considere algo como o seguinte em seu lugar.
ps -ef | grep "[t]ail" | grep 'somefile.log' | tr -s ' ' | cut -d' ' -f2 | xargs kill
-
ps -ef
exibirá todos os processos em execução no seu sistema. -
grep "[t]ail"
irá encontrar todos os processos com cauda no nome (excluindo este grep). -
grep 'somefile.log'
encontrará a partir desses arquivos com somefile.log no nome. -
tr -s ' '
irá espremer todos os múltiplos espaços para um. -
cut -d' ' -f2
usará espaço como delimitador obterá apenas a segunda coluna que é o PID. -
xargs kill
irá matar esse PID.
Isso eliminará qualquer processo final de leitura do arquivo (barra alguns casos estranhos de canto, por exemplo, arquivo de log chamado tailsomefile.log). Pode haver uma maneira mais limpa de fazer isso, mas esta foi a primeira solução imediatamente óbvia para mim. Eu testei que isso está funcionando no Linux.