como obter a saída de um processo nohup em execução se nohup.out for excluído

2

Eu tenho um processo nohup rodando na minha caixa FreeBSD 8.4. Inicialmente eu estava olhando para saída de mensagens do console nohup através de

tail -f nohup.out

Mas eu apaguei acidentalmente o arquivo nohup.out. Como posso acessar as mensagens do console agora?

    
por Dcoder 24.02.2015 / 10:27

1 resposta

1

Sim, embora o arquivo ainda esteja disponível enquanto o processo o mantém aberto, porque era unlink -ed, não está mais acessível.

Se você precisar continuar vendo as mensagens conforme elas são geradas, você pode ativar ktrace no processo, que as gera:

% ktrace -p PID
% kdump -l

Os itens acima listarão todas as chamadas do sistema feitas pelo processo, no entanto, não apenas gravam em stdout e stderr , então pode ser um pouco avassalador e / ou exigir filtragem adicional para obter apenas o que você deseja ver.

Se você quiser uma cópia do arquivo, poderá usar um dos utilitários de uso geral, como tsk_recover , dos sysutils / sleuthkit port. A sabedoria usual de não gravar no sistema de arquivos contendo os arquivos apagados acidentalmente, que você deseja restaurar, não se aplica, porque você ainda tem um processo mantendo o arquivo aberto.

No entanto, a recuperação criará uma cópia do arquivo excluído - qualquer coisa escrita nele pelo mesmo processo depois não estará na cópia.

Desculpe, não consigo pensar em mais nada ... No Solaris já consegui restaurar um arquivo excluído, que ainda estava aberto por um processo, indo para /proc/PID/fd/... , mas o procfs no FreeBSD não oferece funcionalidade ...

De acordo com esta resposta , o /proc/PID/fd O método também funcionaria no Linux, mas o linprocfs do FreeBSD também não oferece o recurso. Uma pena, realmente ...

    
por 27.11.2015 / 17:59

Tags