Signal9Signal9 — home
online
back to labs

xargs -P and Named Pipes: Fan Out and Wire Processes Together

HardCommand Line Guru25-35 min
The brief

Two power tools that don't fit in a plain pipeline: xargs -P fans a command out across many inputs in parallel, and a named pipe (mkfifo) wires two processes together through the filesystem. Your hosts are in /root/case/hosts.txt.

Write /root/scripts/fan.sh that does both, then run it: grading reads the two output files it produces, not the script itself.

1. Parallel map — for each host emit host=<h> len=<n> (n = name length), running in parallel with xargs -I{} -P4, collected into /root/out/results.txt (order doesn't matter — grading sorts).

2. Named pipe — use mkfifo with a backgrounded producer and a blocking reader to land the host count in /root/out/total.txt (a file holding that one number; wc -l's own <count> <file> line is accepted too).

Grading reads results.txt as a sorted set and total.txt. See /root/case/brief.txt for worked commands.

What you'll do
  • Fan a per-host command out in parallel with xargs -I{} -P4
  • Collect the parallel output into results.txt (order-independent)
  • Build a mkfifo producer/consumer with a backgrounded writer and a blocking reader
  • Land the host count via the FIFO into total.txt

Hands-on lab: you work on a real Linux box in your browser, graded on the machine's actual state.