Como eu trago um processo daemon para primeiro plano?

2

Eu tenho um servidor python rodando como um daemon no Debian 4.1. Eu quero ver o seu stdout, então eu pensei que deveria trazê-lo para o primeiro plano de alguma forma. Como posso fazer isso?

    
por Hosam Aly 15.07.2009 / 14:52

4 respostas

4

Se você executar o daemon em segundo plano e não tiver nenhuma opção para ser executado em primeiro plano ou fazer o login em um arquivo, eu realmente não acho que ele escreverá algo no stdout (isso não seria legal ).
Se realmente fizer isso, sugiro lançá-lo com um redirecionamento para um arquivo de log como:

mydaemon > /var/log/mydaemonlogfile
    
por 15.07.2009 / 14:58
3

Se o deamon estiver escrevendo algo para stdout, ele deve estar enviando para um arquivo de log. Se você quiser uma visão em tempo real do que está registrando, então:

tail -f the_log_file

Vai fazer o truque. É como normalmente monitora o que um serviço no Linux faz em tempo real.

    
por 15.07.2009 / 15:18
3

O procedimento "Daemonizing" sempre se desanexa do terminal, e os descritores stdin, stdout e stderr são fechados. Isso significa que não há como trazê-lo de volta, exceto por algumas funcionalidades especiais, como:

  1. Arquivos de log
  2. Console de aplicativos especiais (programa separado - como o cliente do servidor MySQL). Isso pode ser também um servidor telnet ligado a alguma porta
por 15.07.2009 / 16:22
1

Ao contrário dos processos que são subprocessos dentro do seu shell, que você pode usar fg e bg à vontade, os daemons geralmente são subprocessos do init. No entanto, bons daemons terão seu stdout e stderr redirecionados para o syslog ou diretamente para um arquivo de log. Se esse não for o caso, e você precisar depurar um daemon em execução no momento e não puder ou não quiser reiniciá-lo, tente strace. Isso deve pelo menos te dar uma ideia do que está acontecendo.

    
por 15.07.2009 / 15:16

Tags