Frank Sorenson wrote:
How about opening the fifo read/write, which doesn't block:
# exec 4<> dave_fifo
# ls -alF /proc/$$/fd
...
lrwx------ 1 sorenson sorenson 64 2009-04-09 18:14 4 -> /tmp/dave_fifo|

Here's an example script:
#!/bin/bash

exec 4<> /tmp/dave_fifo
(sleep 2 ; kill -SIGUSR1 $$ ; echo "I'm alive" >&4) &

# Wait for the flag to get raised, or give up after a while:
read -t 5 -u 4 line
if [ $? -eq 0 ] ; then
        echo "The child said: $line"
else
        echo "Timed out waiting for child"
fi

Interesting idea. Doesn't this block my daemon process (a separate piece of C code) from opening the fifo for writing as well? My bash script reads from the fifo, but the C program writes to it (and is responsible for opening it for writing).

--Dave

/*
PLUG: http://plug.org, #utah on irc.freenode.net
Unsubscribe: http://plug.org/mailman/options/plug
Don't fear the penguin.
*/

Reply via email to