[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: rodar via CRON ou DAEMON?
From: |
Cristiano |
Subject: |
Re: rodar via CRON ou DAEMON? |
Date: |
Thu, 29 Jul 2010 14:17:19 -0000 |
User-agent: |
eGroups-EW/0.82 |
--- Em address@hidden, "Julio C. Neves" <julio.neves@...> escreveu
>
> Eu acho que o assunto é bastante pertinente. Opessoal que usa shell
> normalmente é admin e isso é um assunto interessante para qq admin que
> mereça esse nome.
>
> Eu tentaria uma coisa totalmente diferente, pois acho que compromete menos o
> processador. Seguinte:
>
> Script1
> =======
> mkfifo tubo
> tail -f <(ls) > tubo
>
> O processo do tail permanece em waiting enquanto não se cria arquivo e qdo
> criá-lo ele será enviado para o named pipe.
>
> Script2
> =======
> while :
> do
> ArqNovo=$(cat tubo)
> ....
> ....
> done
>
> O named pipe precisa de um cara falando e outro ouvindo. Esse cat tubo
> ligará um semáforo do S.O. e ficará esperando (sem onerar absolutamente
> nada) a mudança deste semáforo que se dará qdo o outro processo "falar" do
> outro lado do tubo e o que ele falou irá para a variável ArqNovo para que vc
> possa trabalhar o dado da forma que vc quiser.
>
> Se enquanto o script2 estiver trabalhando o dado, for criado um novo
> arquivo, o script1 ficará em waiting até que termine o ciclo do while e o
> prg volte para o cat.
>
> Cara dê uma olhada em www.julioneves.com. Acho que a parte referente a named
> pipe e substituição de processo [<(ls)] estão no Papo de Botequim 11. Lá tá
> tudo mastigado e cheio de exemplos.
Júlio, entendi sua sugestão, mas não consegui implementá-la.
A atribuição da variável ArqNovo não está funcionando. O subprocesso (cat tubo)
não retorna, enquanto o tail da outra ponta do pipe não é encerrado e,
portanto, o loop não gira.
Abri 3 shells no servidor. No primeiro, crei o pipe e rodei o tail. No segundo,
rodei o cat no pipe e, em um terceiro shell, criei arquivos no diretório. Não
funcionou. Veja o que fiz:
http://pastebin.com/MrgeP056
Como era esperado, o 'cat pipe' não retorna, enquanto o processo do tail não
encerra. Mas também não recebe novos dados dele quando crio novos arquivos no
diretório "dir_in".
O problema de não atualizar quando se cria novos arquivos não está no fato de
que, embora o tail -f segure o pipe aberto, o ls, por sua vez, é executado uma
única vez e não há instrução que force sua repetição?
- rodar via CRON ou DAEMON?, Cristiano, 2010/07/28
- Re: [shell-script] rodar via CRON ou DAEMON?, Thiago Diniz da Silveira, 2010/07/28
- Re: rodar via CRON ou DAEMON?, Cristiano, 2010/07/28
- Re: [shell-script] Re: rodar via CRON ou DAEMON?, Eri Ramos Bastos, 2010/07/28
- Re: [shell-script] Re: rodar via CRON ou DAEMON?, Julio C. Neves, 2010/07/28
- Re: rodar via CRON ou DAEMON?, Cristiano, 2010/07/29
- Re: rodar via CRON ou DAEMON?,
Cristiano <=
- Re: [shell-script] Re: rodar via CRON ou DAEMON?, Julio C. Neves, 2010/07/29
- Re: rodar via CRON ou DAEMON?, Cristiano, 2010/07/30
- Re: [shell-script] Re: rodar via CRON ou DAEMON?, Thomaz de Oliveira dos Reis, 2010/07/30
- Re: rodar via CRON ou DAEMON?, Cristiano, 2010/07/30