Named Pipe (First in First out) FIFO
Dica publicada em Linux / Introdução
Named Pipe (First in First out) FIFO
Quando criamos um arquivo de pipe, temos a finalidade de trabalhar na sincronização de arquivo. Veremos um exemplo basicão para entendermos que uma ponta tty1 fica na escuta LISTEN e a outra ponta tty2 fica com o trabalho JOB.
Pré-requisito: Abra dois terminais em um mesmo sistema (tty1-tty2) e faça seu login em ambos.
Step by Step:
1. Crie um named pipe (mkfifo):
# mkfifo teste
Quando você listar verá que ele terá um "p" antes das permissões e que o arquivo ficou com a cor vermelha, o que indica em modo colorize (se seu shell tiver habilitado) que é um pipe.
# ls -lai teste
2. Abra dois tty, o que você esta mais um (tty1, tty2). No tty1 digite:
# cat < teste
Você notará que o shell não abrirá para digitar mais nada, é porque ele está em LISTEN.
3. Agora se logue no tty2 e digite:
# ls -lai / > teste
Volte para tty1 e notará que foi sincronizado o arquivo, ele ficou no LISTEN aguardando o JOB para sincronizar.
Com isso você verificou na prática a sincronização entre processos, imagine grandes aplicações que necessite desse procedimento, "vira uma mão na roda"!!!
Conclusão:
O named pipes tem sua grande usabilidade em permitir que programas sem nenhuma relação possam se comunicar entre si, assim como vimos e testamos, provamos que os mesmos são usados para sincronização entre processos.
Bom galera isso é apenas pra tirar o pé do chão e saber o que é um Named Pipe e para que serve, pode ter certeza que poucos profissionais tem conhecimento e sabem sua implementação.
Qualquer dúvida é só postar! Aguardem mais assuntos interessantes, ABS...
Pré-requisito: Abra dois terminais em um mesmo sistema (tty1-tty2) e faça seu login em ambos.
Step by Step:
1. Crie um named pipe (mkfifo):
# mkfifo teste
Quando você listar verá que ele terá um "p" antes das permissões e que o arquivo ficou com a cor vermelha, o que indica em modo colorize (se seu shell tiver habilitado) que é um pipe.
# ls -lai teste
2. Abra dois tty, o que você esta mais um (tty1, tty2). No tty1 digite:
# cat < teste
Você notará que o shell não abrirá para digitar mais nada, é porque ele está em LISTEN.
3. Agora se logue no tty2 e digite:
# ls -lai / > teste
Volte para tty1 e notará que foi sincronizado o arquivo, ele ficou no LISTEN aguardando o JOB para sincronizar.
Com isso você verificou na prática a sincronização entre processos, imagine grandes aplicações que necessite desse procedimento, "vira uma mão na roda"!!!
Conclusão:
O named pipes tem sua grande usabilidade em permitir que programas sem nenhuma relação possam se comunicar entre si, assim como vimos e testamos, provamos que os mesmos são usados para sincronização entre processos.
Bom galera isso é apenas pra tirar o pé do chão e saber o que é um Named Pipe e para que serve, pode ter certeza que poucos profissionais tem conhecimento e sabem sua implementação.
Qualquer dúvida é só postar! Aguardem mais assuntos interessantes, ABS...
Isso vai ser de grande utilidade para dar um 'improve' nos meus scripts.
Thx.