Configuración de tuberías de lectura de tuberías con nombre sin bloquear en bash
Busco llamar a un subproceso con un descriptor de archivo abierto a una tubería determinada, de modo que la llamada open () no se cuelga esperando que el otro lado de la tubería reciba una conexión.
Demostrar:
$ mkfifo /tmp/foobar.pipe
$ some_program --command-fd=5 5</tmp/foobar.pipe
En este caso,some_program
No se ejecuta hasta que algún proceso tiene/tmp/foobar.pipe
abierto para escribir; sin embargo,some_program
tiene efectos útiles incluso cuando no está recibiendo comandos, por lo que el comportamiento deseado es parasome_program
para ser ejecutado de inmediato.
Mecanismos para hacer esto mediante la ejecución a través de un lenguaje de script alternativo (python, perl, etc.) o un contenedor C que se abre/tmp/foobar.pipe
con elO_NONBLOCK
bandera son obvias Estoy buscando una solución de puro bash, si una fuera posible.