Substituições de processo persistentes? [duplicado]

1

Existe uma maneira de tomar uma substituição de processo como <(grep foo some/file) e salvá-la em uma "entidade semelhante a arquivo" no disco (lembrando um fifo), de modo que, toda vez que essa coisa fosse aberta para leitura por algum process P , o comando grep foo some/file (ou qualquer outro) seria executado novamente, e a saída retornada como o conteúdo sendo lido pelo processo P ?

    
por kjo 14.05.2016 / 02:07

1 resposta

3

Isso não é possível com os recursos padrão do UNIX / POSIX. Suas opções imperfeitas são:

  • Basta usar um script de shell e fazer com que o aplicativo de "abertura" (ou seu shell) o execute em vez de abri-lo para leitura. Alguns aplicativos podem suportar fazer isso, caso contrário, você terá que recorrer a um wrapper de script de shell.
  • Use um fifo e escreva um daemon que grave nele. Isso significa que você precisa ter o daemon iniciado e não funcionará corretamente se o fifo for aberto várias vezes simultaneamente.
  • Use um sistema de arquivos virtual, por exemplo FUSE no Linux, para apresentar um arquivo virtual com a semântica que você deseja. Você ainda precisa de um daemon que implemente o sistema de arquivos virtual para isso.
por 14.05.2016 / 05:24