Rastreie onde um daemon tenta encontrar seu arquivo de configuração

0

Eu instalei um daemon em um sistema kubuntu, que tenta encontrar um arquivo de configuração específico em um local desconhecido. Ter preenchido litterally o sistema de arquivos com links simbólicos para o arquivo de configuração, mas ainda reclama "arquivo não encontrado".

Existe algum comando que eu possa escrever, que registrará todas as tentativas de acessar arquivos inexistentes no disco rígido, para que eu possa encontrar onde ele tenta procurar o arquivo?

    
por sebastian nielsen 01.07.2012 / 23:18

1 resposta

0

Você pode usar strace no processo se souber seu PID:

strace -f -p 123 | tee testoutput.txt

(assumindo um pid de 123). O "-f" significa "siga forks" (simplificado disse), "-p" diz "PID segue". Veja man strace para mais detalhes. Em poucas palavras, o Strace rastreia todas as ações que o processo tenta, por exemplo. na abertura de arquivos, lendo ou escrevendo para eles. O melhor é redirecionar a saída para um arquivo para análise - no meu exemplo, isso é alcançado canalizando-o para tee, que divide a saída a ser exibida no console, bem como gravada no arquivo especificado.

Na saída, procure por algo como

read(51, 0x7f287a7b36f0, 4096)          = -1 EAGAIN (Resource temporarily unavailable)

(Sim, esse é o erro errado - mas o único que eu encontrei por enquanto) - então um read seguido por algo entre parênteses, alguns espaços seguidos por um "=" e um número negativo (= erro ). Eu acho que você deve encontrar algo como "ENOTFOUND" para indicar o arquivo ausente (não sei o código de erro exato).

    
por 02.07.2012 / 00:58

Tags