#!/bin/sh FIFO=/var/tmp/logpipe PID=/run/receive-log LOG=/var/log/pipe.log if [ -n "$1" ] then LOG=$1 fi echo $$ > ${PID} test -p ${FIFO} || mkfifo ${FIFO} trap receive_SIGHUP 1 trap receive_SIGTERM 15 # --- Functions receive_SIGHUP () { daytime=`date '+%Y-%m-%dT%H:%M:%S%z'` echo "Received SIGHUP" 1>&2 sleep 10 } receive_SIGTERM() { daytime=`date '+%Y-%m-%dT%H:%M:%S%z'` echo "Received SIGTERM" 1>&2 rm ${PID} exit 0 } # --- Main while true do if [ -p ${FIFO} ] then read line <${FIFO} test -n "${line}" && echo ${line} >> ${LOG} else sleep 1 fi done 2>/dev/null