summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xconsumer.sh13
1 files changed, 9 insertions, 4 deletions
diff --git a/consumer.sh b/consumer.sh
index 975f103..4ee3d0c 100755
--- a/consumer.sh
+++ b/consumer.sh
@@ -2,17 +2,22 @@
REMOTE_HOST="${QUEUE_REMOTE_HOST:-lex-queue}"
REMOTE_FIFO="${QUEUE_REMOTE_FIFO:-/tmp/job_queue}"
-TARGET_DIR="${QUEUE_TARGET_DIR:-/home/lex}"
+TARGET_DIR="${QUEUE_TARGET_DIR:-/home/sadeep/lex}"
# Ensure the FIFO exists
-ssh "$REMOTE_HOST" "test -p \"$REMOTE_FIFO\" || mkfifo -m 0600 \"$REMOTE_FIFO\"" || {
- echo "[$(date '+%H:%M:%S')] ERROR: Failed to reach remote host or create FIFO" >&2
+ssh -n "$REMOTE_HOST" "
+ fuser -k \"$REMOTE_FIFO\" 2>/dev/null
+ test -p \"$REMOTE_FIFO\" || mkfifo -m 0600 \"$REMOTE_FIFO\"
+" || {
+ echo "[$(date '+%H:%M:%S')] ERROR: Failed to reach remote host or prepare FIFO" >&2
exit 1
}
echo "[$(date '+%H:%M:%S')] Listening to remote FIFO '$REMOTE_FIFO' on $REMOTE_HOST..."
-ssh "$REMOTE_HOST" "exec 3<> \"$REMOTE_FIFO\"; cat <&3" | while read -r msg; do
+while true; do
+ msg=$(ssh -n "$REMOTE_HOST" "head -n 1 \"$REMOTE_FIFO\"")
+
[ -z "$msg" ] && continue
# Log formatted line capped at 72 chars