
Instalei um daemon em um sistema kubuntu que tenta encontrar um arquivo de configuração específico em um local desconhecido. Enchi literalmente o sistema de arquivos com links simbólicos para o arquivo de configuração, mas ainda assim ele 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 descobrir onde ele tenta procurar seu arquivo?
Responder1
Você poderia usar strace no processo se souber seu PID:
strace -f -p 123 | tee testoutput.txt
(assumindo um pid de 123). O "-f" significa "follow forks" (simplificado), "-p" diz "PID segue". Veja man strace
para mais detalhes. Em poucas palavras, strace rastreia todas as ações que o processo tenta, por exemplo, abrir arquivos, ler ou gravar neles. O melhor é redirecionar a saída para um arquivo para análise - no meu exemplo, isso é conseguido canalizando-a para tee, que divide a saída para ser exibida no console e também gravada no arquivo especificado.
Na saída, procure algo como
read(51, 0x7f287a7b36f0, 4096) = -1 EAGAIN (Resource temporarily unavailable)
(Sim, esse é o erro errado - mas o único que consegui encontrar por enquanto) - então a read
seguido por algo entre parênteses, depois alguns espaços seguidos por um "=" e um número negativo (= erro). Acho que você deveria encontrar algo como "ENOTFOUND" para indicar o arquivo ausente (não sei o código de erro exato).