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 -efexibirá 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' ' -f2usará espaço como delimitador obterá apenas a segunda coluna que é o PID. -
xargs killirá 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.