Eu tenho um processo transitório de prelink preenchendo nosso log de auditoria, mas não temos certeza de qual é o processo. O log de erro nos dá o PID, mas ele desaparece praticamente instantaneamente, como o processo termina quando ocorre um erro, eu acho.
O que eu quero fazer é seguir o log, fazer o grep do PID e colocar isso em um 'ps -p', ou um 'ps -ef | grep PID '.
O que eu tenho até agora é:
ps -p $(tail -f /var/log/audit/audit.log | grep 'comm="prelink"' | grep -o 'pid=[0-9]* ' | grep -o [0-9]*)
Mas eu acho que a expansão do shell não está atualizando, ou seja, eu executo o comando e o PID encontrado na última entrada do log é, digamos, 1234, então o ps só está procurando por isso, e não atualização.
Eu tentei variações em torno de infinitamente looping a saída da cauda em PS, ou em um grep de PS, mas eu não estou chegando a lugar nenhum. Estou executando o tail -f do log por conta própria em outra janela para ver quando é atualizado, e definitivamente é, mas o comando para raspar o PS para que o PID não esteja reagindo.
Alguém pode sugerir uma maneira de alcançar o que estou tentando fazer?
Além disso, existe uma maneira realmente simples e melhor e óbvia de fazer isso? Eu não sou super experiente e tenho o hábito de complicar muito as coisas, então se você tem um "Por que você não faz X", sinta-se livre para jogá-lo!
Obrigado pilhas!
B.